在Windows上编译Apache APR

最终的结果是我想编译一些需要在Windows上从APR的APR。

编辑:尝试VS2013&VS2014的Visual Studio命令行工具。 链接SVN结帐显示404: http : //apr.apache.org/anonsvn.txt

所以…

从这个链接http://apr.apache.org/compiling_win32.html我已经下载了三个文件。 我解压缩它们,并将其重命名为目录结构build议。

C:\ work \ apr \ C:\ work \ apr-iconv \ C:\ work \ apr-util \

移动到apr-util目录并运行以下make命令并收到以下错误。

请注意,有关“当前版本的APR不需要awk …”的评论,但链接不起作用,这有什么关系?

任何人有运气编译这个,我需要其他的lib /包括/对象?

nmake -f Makefile.win buildall checkall installall clean

收到以下错误:

<clip> rc.exe /l 0x409 /fo".\Release\libapriconv.res" /i "./include" /i "../apr/include" /d "NDEBUG" /d "API_VERSION_ONLY" .\libapriconv.rc Microsoft (R) Windows (R) Resource Compiler Version 6.3.9600.17336 Copyright (C) Microsoft Corporation. All rights reserved. link.exe @C:\Users\JOHNAT~1\AppData\Local\Temp\nm390A.tmp Creating library .\Release\libapriconv-1.lib and object .\Release\libapriconv-1.exp if exist .\Release\libapriconv-1.dll.manifest mt.exe -manifest .\Release\libapriconv-1.dll.manifest -outputresource:.\Release\libapriconv-1.dll;2 echo Helper for Post-build step > ".\Release\postbld.dep" cd ccs "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\nmake.exe" -nologo -f Makefile.win all BUILD_MODE="Win32 Release" BIND_MODE=shared adobe-stdenc.c Creating library ..\Release\iconv\adobe-stdenc.lib and object ..\Release\iconv\adobe-stdenc.exp adobe-stdenc.obj : error LNK2011: precompiled object not linked in; image may not run ..\Release\iconv\adobe-stdenc.so : fatal error LNK1120: 1 unresolved externals NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\link.EXE"' : return code '0x460' Stop. NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\nmake.exe"' : return code '0x2' Stop. 

Solutions Collecting From Web of "在Windows上编译Apache APR"

从标题下的apache-apr项目站点:

Developer Studio工作区/ Microsoft开发环境IDE Build ::

打开apr-util / aprutil.dsw工作区,然后选择使用Release或Debug版本作为活动项目的aprutil或libaprutil(用于静态或动态库)。 aprutil.dsw会导致所有相关的项目被建立。

也许你忽略了这个说法: 选择aprutil或libaprutil作为活动项目

然后建立活动项目。

这有点晚了,但这是我如何解决它。

在build \ modules.mk.win makefile中更改第221行

 $(SILENT)link $(ALL_LDFLAGS) $*.obj $(API_LIBS) /out:$@ \ 

 $(SILENT)link $(ALL_LDFLAGS) $*.obj $(MODRES).obj $(API_LIBS) /out:$@ \ 

共享库目标现在将读取:

 .c{$(OUTPUT_DIR)}.so: $(SILENT)cl $(ALL_CFLAGS) /Fo$*.obj /Yuiconv.h /c $< $(SILENT)link $(ALL_LDFLAGS) $*.obj $(MODRES).obj $(API_LIBS) /out:$@ \ /base:@"..\build\BaseAddr.ref",$(@F) $(SILENT)if exist $@.manifest \ $(SILENT)mt -nologo -manifest $@.manifest -outputresource:$@;2 \ & del "$@.manifest" $(SILENT)del "$*.exp" & del "$*.lib" 

来源: https : //gist.github.com/mkhon/01a1536b01e0065ae799