2016-04-27 185 views
1

最終結果是我想編譯一些需要Windows上Apache的APR。在Windows上編譯Apache APR

編輯:嘗試Visual Studio命令行工具VS2013 & VS2014。 鏈接SVN結帳顯示404:http://apr.apache.org/anonsvn.txt

所以......

從這個鏈接http://apr.apache.org/compiling_win32.html我已經下載了三個文件。我解壓縮它們並將它們重命名爲目錄結構。

C:\工作\月\ C:\工作\ APR-的iconv \ C:\工作\ APR-UTIL \

移動到APR-util目錄和運行以下make命令和接收以下錯誤。

請注意有關「當前版本的APR不需要awk ...」的註釋,但鏈接不起作用,這有什麼關係嗎?

任何人都有幸編譯這個,我需要其他的lib/include/objects嗎?

NMAKE -f Makefile.win buildall checkall installall乾淨

收到以下錯誤:

<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. 

回答

1

從Apache-APR項目網站標題下:

開發工作室工作區/ Microsoft開發環境IDE構建::

打開apr-util/aprutil.dsw工作空間,並將Release或Debug版本選作aprotil或libaprutil(對於靜態或動態庫)作爲活動項目。 aprutil.dsw會導致所有相關項目的建立。

也許你忽略了這個說法:選擇使用aprutil或libaprutil爲活動項目 ...

然後建立活動項目。

0

這有點晚,但這裏是我如何修復它。

在構建\ modules.mk.win生成文件變更線221從

$(SILENT)link $(ALL_LDFLAGS) $*.obj $(API_LIBS) /out:[email protected] \ 

$(SILENT)link $(ALL_LDFLAGS) $*.obj $(MODRES).obj $(API_LIBS) /out:[email protected] \ 

共享庫目標現在將讀取:

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

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