Qt|编译 QuaZip 以及程序应用

最近打算做一个解压缩包的功能,发现 Qt 也可以实现,那么今天来讲解下如何在编译 QuaZip 库时遇到的那些问题以及坑,希望大家引以为戒,哈哈!
QuaZip 的开源地址:QuaZip开源地址
开发环境:win10 环境 VS2017+Qt5.14.2 x64
如果你的运行环境与我一致,那么请继续往下看吧,不是 VS2017 也没有关系,VS2015 以上都是可以支持滴~
下载的 QuaZip 的开源压缩包叫做:quazip-0.7.3,解压缩之后的内容,如下:

功能
第一步:双击打开"quazip.sln"
发现出现了这样的问题

紧接着,解决方案也出现错误了

没事,大家不要慌,我们只需要稍作修改就可以啦~

重新加载 quazip.pro

接下来我们只需要一路“确定”,就可以将解决方案加载上啦~
第二步:编译
如果大家此时直接编译 quazip 解决方案,发现会出现如下的问题

即使这样子也没有关系,我们这时需要借助一个叫做“everything”的搜索工具,如果没有直接从网上下载就可以了,这里不需要过多说明,借助这个工具,只需要搜索我们丢失的文件:"zlib.h"以及"zconf.h"
搜索对应的文件后,你会发现,居然有好多个地方存在这两个文件,此时,你需要匹配当前所应用的 QT 环境找寻匹配内容了。
在这里,我们如何知道该匹配哪个文件夹下的头文件呢?
最简单的方法就是,我们在使用 VS 编译程序时,在展示输出内容时的第一句话,就是我们头文件所处于的位置

就按照蓝色区域框出来的路径查询,肯定没有问题。并将查询的两个.h 文件拷贝到 quazip 文件夹下,并添加到项目中。
直接编译不会出现任何错误,完美!
编译完成的内容分别在以下两个文件夹中

第三步:新建项目使用解压功能
新建一个 Qt Widget 的项目,假设项目名称叫做:QtZipFiles
3.1:配置 quazip 的属性
配置头文件

配置 quazip 所需要用到的头文件路径,在这里需要注意的是,在新建项目中只需要在属性中配置就可以了,无需在项目中添加,否则会出现静态导出库的问题!
那么,对应的"include"中有哪些内容呢?

就是上述我所说到的,quazip 文件夹下所有的.h 以及.cpp 文件
配置静态库


debug 与 release 的配置方式一致。
3.2:dll 导出库位置
静待库配置完成后,下面需要放置两个 dll 了,此时,就需要将 dll 放到与你当前创建的项目 QtZipFiles 生成的 exe 相同的路径下
3.3:程序应用
以上属性配置成功之后,直接编译是不会出任何错误的,接下来就到了直接使用的环节了。
添加的头文件:
解压缩使用
压缩使用
到这里 Qt 的压缩与解压缩功能就完成啦~
我是中国好公民 st,一名 C++开发程序猿~
评论