Windows上编译Apache2的模块
最近,Apache2上使用的一个模块升级了,因为windows上的dll文件也需要重新升级
在Windows上对应的dll文件最早是qyb老大给编译的,编译环境造就没了
我参照老大以前写的一个简单文档,搭建了一个环境,最后编译成功了
记录一下过程:
- 安装Apache2,选择custom install,把对应的头文件和lib给装上
- 安装Win32OpenSSL
- 安装Visual C++ Express,需要把Windows SDK给装上
- 建立一个bat文件,设置环境变量(PATH,INCLUDE,LIB),并运行编译和链接命令:
- @set PATH=C:Program FilesMicrosoft Visual Studio 9.0Common7IDE;C:Program FilesMicrosoft Visual Studio 9.0VCBIN;C:Program FilesMicrosoft Visual Studio 9.0Common7Tools;C:WINDOWSMicrosoft.NETFrameworkv3.5;C:WINDOWSMicrosoft.NETFrameworkv2.0.50727;C:Program FilesMicrosoft Visual Studio 9.0VCVCPackages;c:Program FilesMicrosoft SDKsWindowsv6.0Ain;%PATH%
- @set INCLUDE=C:Program FilesMicrosoft Visual Studio 9.0VCINCLUDE;c:Program FilesMicrosoft SDKsWindowsv6.0AInclude;c:Program FilesApache Software FoundationApache2.2include;c:Program FilesOpenSSLinclude;%INCLUDE%
- @set LIB=C:Program FilesMicrosoft Visual Studio 9.0VCLIB;c:Program FilesMicrosoft SDKsWindowsv6.0ALib;c:Program FilesApache Software FoundationApache2.2lib;c:Program FilesOpenSSLlibVC;%LIB%
- @set LIBPATH=C:WINDOWSMicrosoft.NETFrameworkv3.5;C:WINDOWSMicrosoft.NETFrameworkv2.0.50727;C:Program FilesMicrosoft Visual Studio 9.0VCLIB;%LIBPATH%
- cl /MD /D "WIN32" /c mod_test.c
- link /DLL mod_test.obj libhttpd.lib libapr-1.lib libeay32MD.lib
- mt -manifest mod_test.dll.manifest -outputresource:mod_test.dll;#2
折叠复制代码
VC安装后,会自动生成一个c:Program FilesMicrosoft Visual Studio 9.0Common7Toolsvsvars32.bat文件,可以参照里面的环境变量设置,并增加Apache2,OpenSSl,Microsoft SDKs对应的变量