VC2005下編譯zlib1.2.5

從zlib官方網站下載zlib的源代碼zlib125.zip,只有VC6、VC9和VC10的工程,從VC6的工程轉爲VC8編譯出現問題,如下:
1>Assembling...
1> Assembling: f:\work\study\zlib-1.2.5\contrib\masmx86\inffas32.asm
1>Assembling...
1> Assembling: f:\work\study\zlib-1.2.5\contrib\masmx86\gvmat32.asm
1>MASM : fatal error A1000: cannot open file : f:\work\study\zlib-1.2.5\contrib\masmx86\gvmat32.asm
1>Project : error PRJ0019: 工具從"Assembling..."

發現masmx86並沒有gvmat32.asm,於是根據win32/Makefile.msc的說明,其中有4中編譯方式,如下:
# Usage:
#   nmake -f win32/Makefile.msc                          (standard build)
#   nmake -f win32/Makefile.msc LOC=-DFOO                (nonstandard build)
#   nmake -f win32/Makefile.msc LOC="-DASMV -DASMINF" \
#         OBJA="inffas32.obj match686.obj"               (use ASM code, x86)
#   nmake -f win32/Makefile.msc AS=ml64 LOC="-DASMV -DASMINF" \
#         OBJA="inffasx64.obj gvmat64.obj inffas8664.c"  (use ASM code, x64)

以第三種爲例:
1、打開“Visual Studio 2005 命令提示”,爲了使用VC2005的缺省系統配置參數;
2、切換目錄到
zlib-1.2.5\contrib\masmx86,並執行腳本bld_ml32.bat,此時會產生inffas32.obj和match686.obj,把這兩個文件拷貝到源代碼目錄zlib-1.2.5下;
3、切換目錄到zlib-1.2.5,執行:nmake -f win32/Makefile.msc LOC="-DASMV -DASMINF" OBJA="inffas32.obj match686.obj"

經過以上三個步驟即可完成zlib1.2.5的編譯。

如果使用第一種方式編譯,需要修改win32/Makefile.msc,在OBJS中增加inffast.obj,否則會出現連接錯誤。

轉自:http://blog.163.com/waft_xu/blog/static/43815294201083094750976/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章