繁体   English   中英

在Windows上编译Apache APR

[英]Compile Apache APR on Windows

最终结果是我试图在Windows上编译需要Apache的APR的东西。

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

所以...

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

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

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

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

任何人都有运气编译,我还需要其他lib / include / objects吗?

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.

这有点晚了,但这是我修复它的方法。

在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

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

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

打开apr-util / aprutil.dsw工作空间,选择aprutil或libaprutil(对于静态或动态库),将Release或Debug构建作为Active Project。 aprutil.dsw导致构建所有相关项目。

也许你忽略了这句话: 选择aprutil或libaprutil作为Active Project ......

然后构建活动项目。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM