Windows 下Apache httpd-2.2.11编译手记

来源:互联网 发布:封闭区域图形填充算法 编辑:程序博客网 时间:2024/05/07 11:02

(转自http://bbs.chinaunix.net/archiver/tid-1400476.html)

Windows 下Apache httpd-2.2.11编译手记

平台:windows XP
编译工具:Microsoft VC6.0
源码下载:[url]http://apache.mirror.phpchina.com/httpd/[/url]
下载版本:httpd-2.2.11-win32-src-r2.zip     06-Jan-2009 02:55  9.6M  HTTP Server project
1) 下载源码后解压,使用VC打开Apache.dsw文件,设置BuildBin classess 工程为Active。
2)开始编译,在编译中VC可能会提示错误。
3)如果编译提示没有找到strings.h和inet.h 错误:
[color=Blue]D:/httpd-2.2.11/srclib/apr/include/apr_want.h(52): Could not find the file strings.h
D:/httpd-2.2.11/srclib/apr/include/apr_want.h(121): Could not find the file arpa/inet.h  [/color]
   打开httpd-2.2.11/srclib/apr/include/apr_want.h 文件,把以下行注释掉:
[table=95%][tr][td][font=FixedSys][color=#000000][color=#0000CC]#[/color][color=#0000FF]if[/color] APR_HAVE_STRINGS_H
[color=#0000CC]#[/color][color=#FF0000]include[/color] [color=#0000CC]<[/color]strings[color=#0000CC].[/color]h[color=#0000CC]>[/color]
[color=#0000CC]#[/color][color=#FF0000]endif[/color]

[color=#0000CC]#[/color][color=#0000FF]if[/color] APR_HAVE_ARPA_INET_H
[color=#0000CC]#[/color][color=#FF0000]include[/color] [color=#0000CC]<[/color]arpa[color=#0000CC]/[/color]inet[color=#0000CC].[/color]h[color=#0000CC]>[/color]
[color=#0000CC]#[/color][color=#FF0000]endif[/color][/color][/font][/td][/tr][/table]

4) 如果编译时候提示不支持LDAP v2.0错误:
[color=Blue]apr_ldap_stub.c
./include/apr_ldap.h(132) : fatal error C1189: #error :  Support for LDAP v2.0 toolkits has been removed from apr-util. Please use an LDAP v3.0 toolkit.
apr_ldap_url.c
apr_ldap_url.c
./include/apr_ldap.h(132) : fatal error C1189: #error :  Support for LDAP v2.0 toolkits has been removed from apr-util. Please use an LDAP v3.0 toolkit.
Generating Code...[/color]
    打开httpd-2.2.11/srclib/apr-util/include/apr_ldap.h 文件,注释该行代码:
[table=95%][tr][td][font=FixedSys][color=#000000][color=#0000CC]#[/color][color=#FF0000]error[/color] Support [color=#0000FF]for[/color] LDAP v2[color=#0000CC].[/color]0 toolkits has been removed from apr[color=#0000CC]-[/color]util[color=#0000CC].[/color] Please use an LDAP v3[color=#0000CC].[/color]0 toolkit[color=#0000CC].[/color][/color][/font][/td][/tr][/table]
5) 如果出现identifier 'SQLLEN' 错误:
[color=Blue]D:httpd-2.2.11/srclib/apr-util/dbd/apr_dbd_odbc.c(134) : error C2061: syntax error : identifier 'SQLLEN'[/color]
    打开文件:httpd-2.2.11/srclib/apr-util/dbd/apr_dbd_odbc.c,在文件头部添加以下行:
[table=95%][tr][td][font=FixedSys][color=#000000][color=#0000FF]typedef[/color] INT32 SQLLEN[color=#0000CC];[/color][/color][/font][/td][/tr][/table]
6) 如果出现LDAP_VENDOR_NAME 错误:
D:/httpd-2.2.11/srclib/apr-util/ldap/apr_ldap_init.c(194) : error C2146: syntax error : missing ';' before identifier 'LDAP_VENDOR_NAME'
D:/httpd-2.2.11/srclib/apr-util/ldap/apr_ldap_init.c(195) : error C2065: 'LDAP_VENDOR_NAME' : undeclared identifier
D:/httpd-2.2.11/srclib/apr-util/ldap/apr_ldap_init.c(195) : error C2143: syntax error : missing ';' before 'string'
   打开httpd-2.2.11/srclib/apr-util/ldap/apr_ldap_init.c 文件,注释以下行:
LDAP_VENDOR_NAME
7) 如果出现WtsApi32.h没有包含错误:
[color=Blue]D:/httpd-2.2.11/support/win32/ApacheMonitor.c(45) : fatal error C1083: Cannot open include file: WtsApi32.h': No such file or directory[/color]
   该提示表示没有安装或配置Microsoft 的PlatformSDK,需要去微软网站上下载PlatformSDK,并安装。
8) 如果提示awk 错误:
[color=Blue]'awk' 不是内部或外部命令,也不是可运行的程序或批处理文件。
Error executing c:/windows/system32/cmd.exe.[/color]
   这个错误是由于没有安装awk工具导致,可以先到[url]http://www.gnu.org/software/gawk/[/url] 下载一个gawk进行安装。如果安装的目录为:C:/Program Files/GnuWin32,在该目录下可以看到一个bin目录,需要把该目录添加到VC Executable files。我的bin目录完整路径为:C:/Program Files/GnuWin32/bin,以下图以该目录为例子进行添加:
[attach]320951[/attach]
[attach]320952[/attach]
[attach]320953[/attach]