Windows下QuaZip及zlib压缩库的编译(Cmake + MSVC16-VS2019)

1、下载源代码

zlib:https://github.com/madler/zlib
quazip: https://github.com/stachenov/quazip
虽然网上有很多zlib和quazip的编译说明,但大多是关于0.7版本的,如今quazip都已经是1.3版本的
本次编译就是基于1.3版本的编译.。

2、编译zlib

(1)、将CmakeList.txt拖到Cmake-gui中,并在where to build中加入build表示cmake生成的文件路径

(2)、点击configure会弹出选择编译器和位信息(默认64位),如果想改成32位则选择Optional platform
提示:如果选择了64位,则在编译quazip时也必须是64位
在这里插入图片描述
在这里插入图片描述
选完点击finish
在这里插入图片描述
(3)、点击Generate(此处一般不会出现问题,下面红字是警告cmake的版本信息),点击Open Project
在这里插入图片描述
(4)、修改文件及编译
工程目录如下(zlib是动态库目录,zlibstatic是静态库目录,我们修改动态库的,zlibstatic不动)
在这里插入图片描述
找到zconf.h头文件后找到如下代码
在这里插入图片描述
将此段代码删除extern
在这里插入图片描述
删除原因: zlib中定义并使用了ZEXTERN和ZEXPORT两种导出符,由宏来管理,但是quazip只选了ZEXPORT作为导出符,而单纯去掉其中一个会导致出现不符合语法的问题。

修改完后右键点击INSTALL,选择重新生成(注意切换到release版本)
在这里插入图片描述
生成后可以在install目录看到如下
在这里插入图片描述
将bin下的zlib.dll,lib下的zlib.lib以及include拷贝至自己所需的文件夹下
(我是创建了一个环境变量,这样程序在编译或是运行时都可以找到,我将所有的库头文件都放到此处)
在这里插入图片描述

3、编译quazip

(1)、使用CMake配置时需要先加入这两项,这两项表明zlib库的头文件及库的位置
在这里插入图片描述
当然你也可以修改CMakeList文件将OFF修改ON,表示使用qt的压缩库,虽然也能编译过去,但是你会发现在后面使用时会报错找不到zlib.h,这是因为quazip没有使用宏定义来控制zlib.h头文件的引入
在这里插入图片描述
(2)、点击configure,点击Generate(选编译器,修改生成目录等,此处不在赘述)
(3)、打开工程
在这里插入图片描述
在此工程中添加宏定义ZLIB_DLL(debug和release都要添加)
原因: zlib中使用ZLIB_DLL控制导入导出符,没有他无法使用导入符,后面会报链接错误
(所以说,linux环境是真干净,没有这么多麻烦事)
在这里插入图片描述
编译debug和release版本,QT在debug版本使用release库时会出现问题。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值