这里使用的是 QuaZip 方案。它调用了 zlib1.dll,如果是32位,直接编译 QuaZip 即可,默认就是32位。
如果是64位,不兼容的 zlib1.dll 会导致编译失败,需要自己编译 zlib。
一、编译Zlib
编译环境:VS2017
1. 官网下载zlib库

解压到一个好找的位置,这里是直接放D盘。
2.命令行编译32位dll

1.最常见的方式,开始菜单找到VS命令提示符工具,输入cd 复制粘贴zlib库的路径(你下载解压的zlib文件路径),回车切换到zlib目录下

2.输入nmake -f win32/Makefile.msc 回车开始编译

3.简单两步,在zlib目录下就生成了静态库和动态库了,生成的是x86版本。

3.命令行编译64位dll

1.编译32位用的是x86的命令提示工具,编译64位需要在开始菜单找到x64的命令提示工具,输入cd zlib库的路径,回车切换到zlib目录下

2.输入 nmake -f win32/Makefile.msc AS=ml64 LOC=”-DASMV -DASMINF -I.” OBJA=”inffasx64.obj gvmat64.obj inffas8664.obj”
执行编译

3.如果遇到错误提示 inffasx64.obj:fatal error LNK1112:模块计算机类型“x64”与目标计算机类型“x86”冲突,


\4. 再次执行 nmake -f win32/Makefile.msc AS=ml64 LOC=”-DASMV -DASMINF -I.” OBJA=”inffasx64.obj gvmat64.obj inffas8664.obj” ,顺利的话就能得到64位的静态库、动态库和导入库了。

成功的 zlib1.dll,替换到 quazip 中的 lib/zlib1.dll。
二、编译QuaZip
转自:https://blog.csdn.net/xiaopei_yan/article/details/90267714
zlib编译详见
https://blog.csdn.net/zhangxuechao_/article/details/85049711
下载quazip
https://github.com/stachenov/quazip
也可直接下载我配置好的quazip
https://github.com/zwx230741/quazip.git
加入头文件
在quazip中创建include文件夹
将zlib头文件拷贝到include文件夹下
加入动态库文件
在quazip中创建lib文件夹

将zlib编译好的动态库拷贝到lib文件夹下

quazip工程配置
修改quazip.pro工程文件。添加头文件路径和动态库路径
1 | INCLUDEPATH += $$PWD/include |

编译动态库
不加入头文件,报以下错误
创建测试工程quazipTest
同理,创建include和lib目录。分别放头文件和动态库文件

拷贝头文件
从quazip拷贝所有头文件
拷贝库文件
拷贝刚刚生成的动态库文件。quazipd.dll
是Debug生成的,quazipd.dll
是Release生成的,zlib1.dll
是zlib动态库

quazipTest工程配置
修改quazipTest.pro工程文件。添加头文件路径和动态库路径
1 | INCLUDEPATH += $$PWD/include |
添加压缩解压代码
1 |
|