• VS源码编译QuaZip(Windows下)


    最近写个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就是zlib(解压缩软件)的Qt封装类,在Qt开发环境中非常好用。

    编译步骤

    1. 在VS中下载Qt插件(全名Qt Visual Studio Tools)并安装,安装后配置下插件使用的Qt版本。

    2. 在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年了,一直没有得到修改。
  • 相关阅读:
    SQL Server数据库开发的二十一条军规
    session过期后在iframe里操作返回到login.html
    父页面与子页面之间调用时通过JS传值
    使用存储过程并返回值与及返回值的获得方法
    五种提高 SQL 性能的方法
    启动Oracle10G监听时报错 错误 1067:进程意外终止
    程序员必读书籍[分类好]
    心理学入门
    Net能做什么
    程序员要找到自己的兴趣所在
  • 原文地址:https://www.cnblogs.com/lgxZJ/p/7260997.html
Copyright © 2020-2023  润新知