QuaZip的源码编译和生成DLL后的使用总结

因为需要使用到QT进行文件夹的压缩,百度后查到可以使用QuaZip,但是查到的内容没有一篇是详细介绍如何使用源码进行编译的,经过多篇博文的参考实践记录下自己所走过的弯路,让其他后来的读者少走坑路

QuaZIP官网   我下载的是0.7.2的版本

下面开始介绍编译的流程和注意事项:

1.需要依赖的环境QT,QT4或者QT5都可以,我都测试过可以正常编译使用,我查到的好多博文说依赖的zlib库都是用的QT自带的源码中的,但是我安装QT的时候为了方便压根不会选择安装源码,那我们可以直接使用zlib官方提供的编译好的dll和头文件,zlib官网地址,当时我用的zlib版本是zlib 1.2.8,在官网中The current release is publicly available here:下面就是提供的源码或者已经编译好的dll,这里我选择了编译好的dll,有一点需要注意的是:如果QT使用的是Mingw版本的那么编译出来的文件只有.a和DLL这2个库文件, 只有使用MSVC版本的Qt才能生成.lib和DLL 2个库文件


 2.下载好后,整个工作目录大概是这样的

QuaZip的源码编译和生成DLL后的使用总结_第1张图片

  3.使用QtCreater打开文件QuaZIP\quazip-0.7.2\quazip.pro,打开之后修改QuaZIP\quazip-0.7.2\quazip.pro中的内容,屏蔽测试文件,这样只编译自己用到的DLL就可以了,具体修改如下

原内容:

SUBDIRS=quazip qztest
修改后的内容:

SUBDIRS=quazip
QuaZip的源码编译和生成DLL后的使用总结_第2张图片

4. 因为QuaZIP需要依赖zlib,修改QuaZIP\quazip-0.7.2\quazip\quazip\quazip.pro 文件,增加zlib的引用,修改后如图:

QuaZip的源码编译和生成DLL后的使用总结_第3张图片

5.然后在工程上执行qmake,然后再执行构建,就会在定义的编译目录生成2个需要的文件,libquazip.a 和quazip.dll,因为我这里用的是mingw版本的QT,用Mingw,G++编译的,所以生成了这2个文件,如果使用MSVC版本的,会生成相应的lib和dll,不过没关系,我测试的时候都可以正常使用

6.使用QtCreater创建一个控制台应用程序,进行刚才生成的dll的测试,创建一个压缩包

修改pro文件,增加需要引用到的quazip相关内容,因为上面编译的quazip生成的是动态库,所以我们在pro中进行如下修改:具体路径根据自己的路径进行修改,这里的 

E:/LearnSource/QuaZIP/bin-quazip/quazip/release
这个路径是我上面quazip工程生成的libquazip.a文件的路径

QuaZip的源码编译和生成DLL后的使用总结_第4张图片


7.具体代码,添加用到的头文件,增加压缩相关的代码

QuaZip的源码编译和生成DLL后的使用总结_第5张图片


8.编译完之后会生成相应的exe文件,但是发现运行之后并没有生成zip文件,怎么回事呢,因为我们用到的是动态库,并没有把用到的相关dll放到生成的exe同级目录下,现在让我们把依赖到的quazip.dll和zlib1.dll放到生成的exe同级目录下,再次运行就能看到生成zip压缩包了,这里的zlib1.dll是我们前面从zlib官网下载的。

QuaZip的源码编译和生成DLL后的使用总结_第6张图片


9.现在还没有明白为什么我使用zlib生成了quazip的动态库,为什么还要用到zlib库呢,不知道是不是因为我用的mingw编译的原因,后面我会测试用msvc版本的编译,进行测试


你可能感兴趣的:(QuaZip的源码编译和生成DLL后的使用总结)