如何在Visual Studio 2017中编译zlib为DLL文件?
太懂这种心情了——明明找对了合适的工具,却卡在编译生成DLL这步,尤其是文档没讲得太明白的时候!我之前刚好在Windows7+Visual Studio2017环境下折腾过zlib 1.2.11,给你一步步说清楚怎么生成需要的DLL:
第一步:解压zlib压缩包
把你下载的zlib1.2.11压缩包解压到任意方便的目录,比如D:\zlib-1.2.11,解压后里面会包含完整的源码和针对不同平台的工程配置文件。
第二步:打开VS2017专用命令提示符
VS的编译依赖特定的环境变量,直接打开IDE编译可能会出奇怪的问题,建议从开始菜单的Visual Studio 2017文件夹里,找到对应的命令提示符:
- 要生成32位DLL就选「VS2017 x86 Native Tools Command Prompt」
- 要生成64位DLL就选「VS2017 x64 Native Tools Command Prompt」
第三步:定位到zlib的VS工程目录
zlib已经为VS2015/2017准备了现成的工程文件,在解压后的目录里找到contrib\vstudio\vc14路径,用命令行进入:
cd D:\zlib-1.2.11\contrib\vstudio\vc14
第四步:编译生成DLL
在打开的命令提示符里,运行MSBuild命令来编译:
- 生成32位Release版本DLL:
MSBuild zlibvc.sln /t:zlibvc /p:Configuration=Release /p:Platform=Win32
- 生成64位Release版本DLL:
MSBuild zlibvc.sln /t:zlibvc /p:Configuration=Release /p:Platform=x64
如果需要Debug版本,只要把命令里的Configuration=Release改成Configuration=Debug就可以了。
第五步:找到生成的文件
编译完成后,生成的DLL和对应的导入库(LIB)会放在zlib根目录的对应平台文件夹里:
- 32位版本:
D:\zlib-1.2.11\win32\Release(Debug版本就把Release换成Debug) - 64位版本:
D:\zlib-1.2.11\x64\Release
里面的zlibwapi.dll就是你需要的动态库,zlibwapi.lib是编译C代码时需要链接的导入库,头文件则在zlib根目录的include文件夹里。
额外小提示
- 如果你习惯用VS IDE操作,直接打开
zlibvc.sln,先在顶部工具栏选择好对应的平台(Win32/x64)和配置(Debug/Release),然后右键点击zlibvc项目选择「生成」,效果和命令行编译是一样的。 - 如果需要静态库,只要编译
zlibstat项目就行,生成的是zlibstat.lib。 - 运行程序的时候,别忘了把
zlibwapi.dll和你的程序放在同一个目录下,或者加到系统环境变量的PATH里,不然会出现“找不到动态库”的错误。
内容的提问来源于stack exchange,提问作者Tom's
相关产品推荐
相关产品推荐

