一、下载源代码
前往zlib官网下载zlib1.2.11源代码
二、编译汇编代码
使用VS工具运行下面两个批处理 ,切记用不同的本地工具:
zlib\contrib\masmx86\bld_ml32.bat
zlib\contrib\masmx64\bld_ml64.bat
三、配置静态库项目
使用VS打开解决方案文件zlib\contrib\vstudio\vc14\zlibvc.sln
设置zlibstat项目编译方式(MT/MD),以及使用的WindowsSDK等信息
四、遇到的问题:
1.
1>utils_idcardverify.obj : error LNK2001: 无法解析的外部符号 _deflate
1>utils_idcardverify.obj : error LNK2001: 无法解析的外部符号 _deflateEnd
1>utils_idcardverify.obj : error LNK2001: 无法解析的外部符号 _inflate
1>utils_idcardverify.obj : error LNK2001: 无法解析的外部符号 _inflateEnd
1>utils_idcardverify.obj : error LNK2001: 无法解析的外部符号 _deflateInit2_
1>utils_idcardverify.obj : error LNK2001: 无法解析的外部符号 _inflateInit2_
解决方法:在 exe 或dll工程中添加宏 ZLIB_WINAPI
2. 出现
1>utils_idcardverify.obj : error LNK2001: 无法解析的外部符号 _deflate@8
1>utils_idcardverify.obj : error LNK2001: 无法解析的外部符号 _deflateEnd@4
1>utils_idcardverify.obj : error LNK2001: 无法解析的外部符号 _inflate@8
1>utils_idcardverify.obj : error LNK2001: 无法解析的外部符号 _inflateEnd@4
1>utils_idcardverify.obj : error LNK2001: 无法解析的外部符号 _deflateInit2_@32
1>utils_idcardverify.obj : error LNK2001: 无法解析的外部符号 _inflateInit2_@16
解决方法:在 zlib工程中添加宏 ZLIB_WINAPI
3.其它问题一般设置 设置zlibstat项目编译方式(MT/MD) 和EXE /DLL一致,一般可以解决。
后面我会把相应工程直接传到下载。
如果使用 MD 出现
error LNK2026: 模块对于 SAFESEH 映像是不安全的
直接修改 属性->链接器->高级->映像具有安全异常处理程序 选择否(如下图),然后点击应用->确认 ,就能生效了