zoukankan      html  css  js  c++  java
  • 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年了,一直没有得到修改。
  • 相关阅读:
    指针与数组名
    c语言指针函数与函数指针
    c语言结构体
    c语言
    c语言全局变量
    c语言函数传递数组
    c实例_挑战程序竞赛,蚂蚁
    c语言字符串实例
    安又琪-唱得响亮
    乡村爱情
  • 原文地址:https://www.cnblogs.com/lgxZJ/p/7260997.html
Copyright © 2011-2022 走看看