Qt quazip编译及使用

最近qt项目中要用到一个解压缩文件的功能,选择使用quazip。

首先需要下载quazip源码
Quazip源码下载地址:Quazip源码下载
quazip在mingw编译器和msvc编译器下编译有所不同。

MSVC环境(我的是Qt5.12.9+vs2015_64):

  1. 直接编译会报错,提示找不到zilb.h文件,将#include "zlib.h"替换为#include "QtZlib/zlib.h"即可。
  2. debug和release都需要编译,将生成的lib dll文件以及相应头文件拷贝到项目中,引库就可以使用了。
  3. 使用方法
#include "JlCompress.h"
JlCompress::compressDir("D:\\xx.zip","D:\\xx"));//压缩
JlCompress::extractDir("D:\\xx.zip","D:\\xx");//解压

MinGW环境(我的是Qt5.12.9+MinGW7.3.0_32):

  1. 直接编译会报错
    解决方法具体可见
    qt 5.10.1 mingw32下使用quazip配置方法
    简单来说就是下载zlib源码进行编译
    1.1 zlib下载官网地址:http://www.zlib.net/
    下载后解压;
    1.2 zlib编译:
    启动Qt5.12.9 for DeskTop(MinGW 7.3.0 32 bit)(在开始中查找可以看到);
    黑窗口控制台中切换到zlib所在的目录;
    依次输入运行以下两命令:
copy win32\makefile.gcc makefile.gcc;
mingw32-make -f makefile.gcc;

此时编译器会在zlib文件夹下编译生成库文件:libz.a、libz.dll.a、zlib1.dll;
在这里插入图片描述
1.3 quazip编译
将 Zlib中的头文件zconf.h和zlib.h放入Quazip项目头文件中
在Qt Creator中打开Quazip项目,将生成的libz.a导入,导入后会在.pro文件中生成相应的.a和.dll文件。
在这里插入图片描述
建议debug和realse都编译一下,不然debug模式下可能闪退。在这里插入图片描述
1.4 将zlib1.dll文件放到build目录下对应的debug或release中,quazip就可以用了。

如果需要经常切换编译器,可以按照以下写法:

  1. 在quazip.pro中添加以下代码:
#编译器为mingw时引入
mingw {
LIBS += -L$$PWD/zlib/mingw_32/ -lz
INCLUDEPATH += $$PWD/zlib/mingw_32/include
DEPENDPATH += $$PWD/zlib/mingw_32/include
}

可添加库后进行修改,库路径和对应头文件路径。

  1. 新建一个头文件,我命名为myzlib.h内容如下:
 #ifdef _MSC_VER
//此处为Msvc编译器环境下的代码
#include "QtZlib/zlib.h"
#elif __GNUC__
//此处为MinGW编译器环境下的代码
#include "zlib.h"
#endif

将quazip源码中的#include "zlib.h"替换为#include "myzlib.h""即可。

  1. 将不同编译器生成的库,以及头文件分别放入文件夹如下图所示:
    在这里插入图片描述
    include文件夹存放头文件,mingw文件夹存放mingw编译器生成的库文件,vs文件夹存放msvc编译器生成的库文件;
  2. 在项目pro文件中按照如下方式引入库:
//头文件路径
INCLUDEPATH += $$PWD/quazip/include
DEPENDPATH += $$PWD/quazip/include
mingw {
//mingw库文件引入
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/quazip/mingw/ -lquazip
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/quazip/mingw/ -lquazipd
} else {
//msvc库文件引入
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/quazip/vs/ -lquazip
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/quazip/vs/ -lquazipd
}
  1. 在需要用的地方包含#include "JlCompress.h"即可。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值