zlib库VS2017编译步骤
[点击这里下载zlib1.2.11源码](http://zlib.net/zlib1211.zip)
#下载源码库#
从上面给出的源码路径下载zlib源码库,如果不想自己编译,可以使用上面给出的二进制包直接使用,无视本文。
#编译步骤#
##编译方法一##
- 解压源码文件到指定目录,例如 x:\zlib
- 打开VS2017的Developer Command Prompt for VS2017工具
- 切换到x:\zlib\contrib\masmx86目录,如果想编译x64的,可以进入masmx64目录,我这里只使用32位
- 执行bld_ml32.bat文件,静待片刻会在文件目录中产生4个文件
- 将生成文件中的inffas32.obj和match686.obj文件复制到根目录 x:\zlib下
- 将Developer Command Prompt for VS2017工具目录切换到根目录 x:\zlib
- 执行nmake命令
```
nmake -f win32/Makefile.msc LOC="-DASMV -DASMINF" OBJA="inffas32.obj match686.obj"
```
- 编译成功以后,就会在根目录产生一系列文件,其中zdll.lib和zlib1.dll就是我们需要的文件
##编译方法二##
- 解压源码文件到指定目录,例如 x:\zlib
- 打开VS2017的Developer Command Prompt for VS2017工具
- 切换到x:\zlib\contrib\masmx86目录,如果想编译x64的,可以进入masmx64目录,我这里只使用32位
- 执行bld_ml32.bat文件,静待片刻会在文件目录中产生4个文件
- 将生成文件中的inffas32.obj和match686.obj文件复制到根目录 x:\zlib下
- 切换到x:\zlib\contrib\vstudio\v14
- 用Visual Studio 2017 IDE打开x:\zlib\contrib\vstudio\v14\zlibvc.sln并编译
编译过程中可能会出现以下几个问题
1.error LNK2026: module unsafe for SAFESEH image
修改属性/linker/Advenced/Image has safe Exception Handles 为No
2.fatal error LNK1118: syntax error in ‘VERSION’ statement
打开zlibvc.def文件VERSION 修改为1.28即可