zlib (gzip) (一) winodws 编译及遇到的问题

一、下载源代码

https://www.zlib.net/fossils/

前往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 映像是不安全的

 直接修改 属性->链接器->高级->映像具有安全异常处理程序   选择否(如下图),然后点击应用->确认  ,就能生效了

 https://github.com/GreateLi/windws_zlib

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恋恋西风

up up up

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值