Qt5.7关于Quazip的编译和使用
来源:互联网 发布:矩阵的1范数,2范数 编辑:程序博客网 时间:2024/06/17 16:58
最近做项目用到了Quazip文件压缩和解压这块,在源码的编译和使用上遇到了不少的坑,接下来将自己的使用方法分享出来,供大家参考。
使用的Qt的版本是qt-opensource-windows-x86-mingw530-5.7.0
Quazip是基于zlib库的,编译时需要导入zlib的头文件和库文件,有兴趣的同学可以自己去下载zlib源码编译,我这里提供一份已经编译好的方便大家。
Quazip源码下载地址:https://sourceforge.net/projects/quazip
zlib资源下载地址:http://download.csdn.net/download/xiaolaoshu96/9955168
没有积分的可以去这个的网址下载:https://ctyunpan.ctfile.com/fs/15205759-217381519
编译
将下载好的Quazip文件解压后复制到QTWorkspaces下,用Qt Creator打开quazip.pro。
打开quazip.pro文件,将SUBDIRS=quazip qztest这行代码最后的qztest删除。
打开quazip文件夹下的quazip.pro文件,在win32代码块下添加两行代码,将zlib的头文件和库文件包含进来(具体路径根据实际修改)
INCLUDEPATH += C:/zlib/includeLIBS += -L C:/zlib/lib -lzdll
将项目改为Release模式,执行qmake,然后在构建,至此编译结束。
应用
新建一个文件夹myquazip,此目录下在分别新建lib和include两个文件夹。将quazip工程下的所有头文件复制到include文件夹下。将release目录下生成的libquazip.a和quazip.dll文件复制到lib目录下。
接下来新建一个控制台程序,在项目的.pro文件中添加下面两行代码,导入相关的库文件和头文件(具体路径根据实际修改)
INCLUDEPATH += C:/myquazip/includeLIBS += -LC:/myquazip/lib -lquazip -LC:/zlib -lzlib1
在mian文件中添加如下代码,进行压缩测试
#include <QCoreApplication>#include "JlCompress.h"#include <QDebug>int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); if(false==JlCompress::compressDir("D:\\test.zip","D:\\test")) qDebug()<<"compress failed"; else qDebug()<<"compress successed"; return a.exec();}
编译成功,运行后发现控制台下没有输出任何东西,程序也没有报错。之前在这里卡了很久,也没有找到问题的原因。后来研究发现,还需要将quazip.dll文件和zlib1.dll文件复制到程序的debug目录下。
再次运行程序,程序正常运行。
- Qt5.7关于Quazip的编译和使用
- QT解压缩zlib和quazip的使用
- QuaZip的源码编译和生成DLL后的使用总结
- qt5.4.0使用quazip解压缩zip文件
- Quazip的使用
- Qt5.4.0+MinGW+Win7环境下编译Quazip
- QT5静态编译和使用
- MSVC 2013 + Qt 5.4.2 + quazip 0.7.1 的编译及使用
- QT5 下静态库的编译和使用(转载)
- 关于mac中Qt5.7编译出现的问题
- quazip 在windows msvc 2005 下的编译
- QuaZip源码编译及其编解码功能的测试
- 关于Quazip解压中文乱码问题的解决
- 使用QuaZip解压文件
- Qt5编译使用QFtp
- 关于qt4和qt5之间的选择
- 关于QT5下代码中文字符编译不通过的问题
- 关于QT5下代码中文字符编译不通过的问题
- 利用 Python 练习数据挖掘(鸢尾花练习)中遇到的问题,以及解决方法。
- ImageLoader源码解析(三) 线程调度
- DiskLruCache 达到最大设置的缓存,清理的逻辑
- Eigen实例操作
- 快速排序
- Qt5.7关于Quazip的编译和使用
- 2018搜狐笔试 Kolakoski数列问题
- 2、flask第二站-请求与相应
- K:(1)算法时间复杂度的简介
- TYPEERROR: UNDEFINED IS NOT A FUNCTION解决方法
- Tomcat使用JKS格式证书配置HTTPS
- Android Activity Launch Mode
- 冒泡排序做排行榜,用的是NGUI里的Label
- ImageLoader源码解析(四) 补充 Displayer的实现