windows下 QT5 Mingw编译zlib quazip动态库

QT应用之Quazip压缩

最近在用QT解压缩zip文件,这里记录一下调试的过程。


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

搜索博客了解,要使用QT压缩解压缩需要用到zlib以及quazip文件 ,对于它们需要进行编译,生成对应的库文件,然后再QT工程中加载进行调用

一、本文章环境

1.windows平台
2.QT 5.12.9 Mingw32bit

这里需要注意:是Mingw编译,不是vs201x平台。你的QT用什么编译器,就选择什么编译器。我这里用的QT Creator,没用使用visual studio

二、编译Zlib源码

1.下载Zlib源码

源码地址http://www.zlib.net/ 版本为:zlib 1.2.11
在这里插入图片描述

在这里插入图片描述

2.MingW32编译Zlib源码

2.1 解压zlib-1.2.11.tar.gz

解压下载好的zlib-1.2.11.tar.gz,放到好找的位置

2.2 打开MingW32进行编译

在这里插入图片描述
然后进入到待编译的zlib-1.2.11目录内

在这里插入图片描述

执行以下代码:

copy win32\Makefile.gcc makefile.gcc
mingw32-make -f makefile.gcc

在这里插入图片描述
在这里插入图片描述

2.3 处理编译完的zlib文件

新建zlib文件夹,在其子目录下新建include、lib文件夹
在这里插入图片描述

将刚才编译完的zlib文件夹下的zlib1.dll、libz.dll.a、libz.a放入lib文件夹内

在这里插入图片描述
在这里插入图片描述
zlib.h zconf.h拷贝到include目录下
在这里插入图片描述

三、编译quazip源码

3.编译quazip

3.1 源码下载

源码地址:版本:quazip-0.7.3.zip

3.2 quazip配置及编译

1、解压quazip-0.7.3.zip之后,打开对应.pro文件
在这里插入图片描述
2、根据需求配置Configure Project
在这里插入图片描述
3、删除pro文件中SUBDIRS=quazip qztest的qztest
在这里插入图片描述
在这里插入图片描述
4、把上一步创建的zlib文件夹拷贝到quazip-0.7.3\quazip目录下

在这里插入图片描述
5、编辑quazip.pro文件,在win32代码块下添加两行代码,将zlib的头文件和库文件包含进来(具体路径根据实际修改)

 INCLUDEPATH += $$PWD/zlib/include
 LIBS += -L $$PWD/zlib/lib -lzlib1

在这里插入图片描述

==========================================================================================
LIBS+= -L直接打地址 -l直接打库名
注意点:-L后面没有空格,直接跟着地址,然后空格,-l后面是去掉lib之后的文件名。
一个例子:如我们有E:\CLibraries\NewmatL\debug\libNewmatL.a这个文件,则:
LIBS += -LE:\CLibraries\NewmatL\debug\ -lNewmatL

==========================================================================================

6、将项目改为Release模式,执行qmake,然后在构建,至此编译结束
在这里插入图片描述

四、压缩与解压缩实验

4.1 quazip生成文件处理

1、新建libquazip文件夹,此目录下在分别新建lib和include两个文件夹。将quazip工程下的所有头文件复制到include文件夹下。将release目录下生成的libquazip.a和quazip.dll文件复制到lib目录下。

在这里插入图片描述
include:
在这里插入图片描述
lib:

在这里插入图片描述

在这里插入图片描述
2、接下来新建一个QT控制台程序,在项目的.pro文件中添加下面两行代码,导入相关的库文件和头文件(具体路径根据实际修改)
将之前的libquazip、zlib文件夹复制到该项目文件夹下
在这里插入图片描述

INCLUDEPATH += $$PWD/libquazip/include
LIBS += -L$$PWD/libquazip/lib -lquazip -L$$PWD/zlib/lib -lzlib1

在这里插入图片描述

4.2 压缩测试

在mian文件中添加如下代码,进行压缩测试

#include <QCoreApplication>
#include "JlCompress.h"
#include <QDebug>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    if(false==JlCompress::compressDir("I:\\test.zip","I:\\test"))
        qDebug()<<"compress failed";
    else
        qDebug()<<"compress successed";
    return a.exec();
}

然后构建生成(前提是你在对应文件夹已经创建了对应的test文件夹,否则会compress failed)
在这里插入图片描述
在这里插入图片描述

4.3 解压缩测试

将刚才的test文件夹删除
修改程序为:

#include <QCoreApplication>
#include "JlCompress.h"
#include <QDebug>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    JlCompress::extractDir("I:\\test.zip","I:\\test");
    return a.exec();
}

运行程序,test.zip被解压生成test文件夹。
在这里插入图片描述
解压缩成功

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Terry.Z_1009

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值