作者开发环境:Qt5.8 ,win10
总体思路:首先我们编译zip源码,生成zip的动态库;然后再编译quazip源码,得到quazip的动态库;最后在我们的程序中去调用。
详细步骤:
1、编译zlib
zlib源码下载:zlib Home Site
zlib的编译,参考:QT 编译zlib_qt zlib-CSDN博客
2、编译quazip
QuaZip是Qt对Zlib进行封装,用于压缩和解压文件的库。
quazip源码的下载:QuaZIP download | SourceForge.net
下载下来后,如果直接编译会报错,我们做如下更改:
(1)打开刚刚下载的quazip.pro,第二行SUBDIRS=quazip qztest 改为SUBDIRS=quazip
(2)将qt安装目录下的两个头文件拷贝出来(zlib.h和zconf.h),不同版本路径可能有出入。将两个头文件拷贝到quazip项目路径中,然后添加到项目程序中。
(3)在quazip中创建lib文件夹
编辑
将zlib编译好的动态库拷贝到lib文件夹下
编辑
修改quazip.pro工程文件。添加动态库路径
LIBS += -L$$PWD/lib -lzlib1
编译成功后,生成的libquazip.a,quazip.dll(如果是debug版本编译生成的就是libquazipd.a和 quazipd.dll)就是我们需要的。
3、创建测试工程
同理,创建include和lib目录,分别放头文件和动态库文件。从quazip拷贝所有头文件到include文件夹下,拷贝刚刚生成的动态库文件到lib文件夹下(quazip.dll、libquazipd.a是quazip动态库,zlib1.dll是zlib动态库)。
编辑
修改quazipTest.pro工程文件,添加头文件路径和动态库路径,这样环境就搭建好了。
编辑
4、添加压缩解压代码
包含头文件 #include "JlCompress.h"
JlCompress::compressDir("D:/testzip/a.zip", "D:/testzipdir1"); //压缩文件
JlCompress::extractDir("D:/testzip/a.zip", "D:/testzipdir2"); //解压缩