您的位置:9159金沙官网 > 金沙澳门9159官网 > VS源码编译QuaZip(Windows下)

VS源码编译QuaZip(Windows下)

发布时间:2019-10-20 22:59编辑:金沙澳门9159官网浏览(108)

    最近写个Qt demo,想要使用压缩和解压多个文件的功能,并不使用额外进程。网上参考了很多资料,发现只有QuaZip比较适合我的需求。但是QuaZip只提供源码,因此需要自己来编译。

    QuaZip简介

    QuaZIP is a simple C++ wrapper over Gilles Vollant's ZIP/UNZIP package that can be used to access ZIP archives. It uses the Qt toolkit.

    简单来说,QuaZip就是VS源码编译QuaZip(Windows下)。zlib(解压缩软件)的Qt封装类,在Qt开发环境中非常好用。

    编译步骤

    1. 在VS中下载Qt插件(全名Qt Visual Studio Tools)并安装,安装后配置下插件使用的Qt版本。
    2. VS源码编译QuaZip(Windows下)。VS源码编译QuaZip(Windows下)。VS源码编译QuaZip(Windows下)。在sourceforge官网下载QuaZip源码,并解压缩。
    3. 用插件打开QuaZip解压缩目录下quazip子目录中的quazip.pro工程文件(VS会提示重新生成配置文件,选择“是”)。
    4. 下载zlib的源代码,并解压缩。
    5. 在VS项目属性中添加解压后的zlib源文件,具体请百度。
    6. 重点来了,用VS打开zconf.h文件,并将:

      #if 1           /* HAVE_UNISTD_H -- this line is updated by ./configure */
      #  include <sys/types.h> /* for off_t */
      #  include <unistd.h>    /* for SEEK_* and off_t */
      #  ifdef VMS
      #    include <unixio.h>   /* for off_t */
      #  endif
      #  define z_off_t off_t
      #endif
      

      这几行替换为以下代码:

      #ifdef HAVE_UNISTD_H
      #include <sys types.h=""> / for off_t /
      #include <unistd.h> / for SEEK_ and off_t */
      #define z_off_t off_t
      #endif
      

      这是因为windows下没有unistd.h这个文件,这是类unix系统才有的。

    7. 顺利编译通过,生成动态链接库。

    感想

    1. 很多开源软件对windows系统的支持不是很好,就像QuaZip,如果你用zlib源码一起编译,那会更蛋疼。
    2. 开软软件的维护更新是一大重要问题,上面那个bug实际上已经存在9年了,一直没有得到修改。

    本文由9159金沙官网发布于金沙澳门9159官网,转载请注明出处:VS源码编译QuaZip(Windows下)

    关键词: