使用VS 2008的Windows上的Apache 2.4链接器错误

时间:2012-05-14 13:44:58

标签: windows visual-studio-2008 compilation linker-errors

问题:是否有关于如何为Windows构建Apache的手册/步骤?官方文档是不够的。

我尝试在Windows 7 Service Pack 3上使用Visual Studio 2008 Professional在Windows上编译Apache HTTP Server 2.4,但完全没有希望! 已经使用Apache HTTP Server 2.2测试了相同的步骤,并且已经成功构建过程。

我不知道什么是错的,或者什么是遗漏的。接下来是步骤:

Visual Studio 2008 Command Prompt:

"C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat"

cd C:\path\to\httpd-2.4.2

perl srclib\apr\build\lineends.pl

perl srclib\apr\build\cvtdsp.pl -2005

cd srclib\zlib
nmake -f win32/Makefile.msc LOC="-DASMV -DASMINF -I." OBJA="inffas32.obj match686.obj"
MT -manifest zlib1.dll.manifest -outputresource:zlib1.dll;2

cd ..\..\srclib\openssl
perl Configure VC-WIN32 enable-camellia disable-idea
ms\do_nasm
nmake /f ms\ntdll.mak

Open Apache.dsw with VS9 "Yes to All" to the "convert projects" question, Select relase win32
Now build InstallBin
Test your build

已经存在必需的库:

srclib\apr
srclib\apr-iconv
srclib\apr-util
srclib\openssl
srclib\pcre
srclib\zlib

正如我所说,所有Apache HTTP Server 2.2 编译都是成功的,而所有Apache HTTP Server 2.4 都是

这是最常出现的错误,重复超过100次:

fatal error LNK1181: cannot open input file '..\..\release\libhttpd.lib'

其他错误:

fatal error LNK1181: cannot open input file '..\release\mod_proxy_balancer.lib'
fatal error LNK1181: cannot open input file '..\core\release\mod_watchdog.lib'
fatal error C1083: Cannot open include file: 'pcre.h': No such file or directory    
fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\Common7\ide\devenv.COM"' : return code '0x1'
error PRJ0019: A tool returned an error code from "Performing Makefile project actions"

注意:我注意到Apache 2.4软件包中缺少多个.mak文件,包括httpd.mak和amp;其他。我认为这是问题的重要部分。

有什么建议吗?

环境:Windows 7 | Visual Studio 2008 | Cygin | Apache HTTP Server 2.4源| APR / APR-UTIL / APR-ICONV / ZLIB / OPENSSL

1 个答案:

答案 0 :(得分:1)

在尝试自己编译Apache之前,尝试编译每个依赖项之前编译每个依赖项以及每个依赖项的依赖项。