Windows下使用VS2010编译mod_wsgi

    最近在学习Django,因此需要mod_wsgi,我下载了mod_wsgi-4.4.11,之前版本的mod_wsgi还有二进制版本提供的,但是4.4.11版本已经不提供二进制版本了,只能下载源代码自己编译了,下载地址:https://github.com/GrahamDumpleton/mod_wsgi/releases

    下载解压后,在win32目录下找到与自己的python和apache服务器版本对应的mk文件,我安装的是python3.4和apache2.4,因此就找到ap24py34-win32-VC10.mk,用记事本打开,将其中的APACHE_ROOTDIR和PYTHON_ROOTDIR修改为自己的apache和python的根目录。

    然后就是打开命令行设置一下环境进行编译了,设置环境变量,这里需要设置path, include和lib,在cmd窗口中输入:

set path = C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin;C:\Program Files\Microsoft Visual Studio 10.0\VC\bin;C:\Program Files\Microsoft Visual Studio 10.0\Common7;

set include = C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include;C:\Program Files\Microsoft Visual Studio 10.0\VC\include;

set lib = C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib;C:\Program Files\Microsoft Visual Studio 10.0\VC\lib;

 

Windows下使用VS2010编译mod_wsgi

    设置好环境变量,然后输入:nmake -f ap24py34-win32-VC10.mk install,就开始进行编译了。

    但是编译过程中出现错误:

Windows下使用VS2010编译mod_wsgi

    错误提示信息说是因为wsgi_memory.obj中无法解析外部符号_[email protected],也就是说找不到Windows调用GetProcessMemoryInfo的实现,因此,在src\server目录中找到wsgi_memory.c,在该文件中添加下面的代码:

#pragma  once
#pragma  message("Psapi.h --> Linking with Psapi.lib")
#pragma  comment(lib,"Psapi.lib")

 

然后再进行编译,就可以看到编译成功了,并且mod_wsgi.so文件也自动拷贝到apache服务器目录中去了!

Windows下使用VS2010编译mod_wsgi