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/

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