VS源碼編譯QuaZip(Windows下)

最近寫個Qt demo,想要使用壓縮和解壓多個文件的功能,並不使用額外進程。網上參考了不少資料,發現只有QuaZip比較適合個人需求。可是QuaZip只提供源碼,所以須要本身來編譯。windows

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.app

簡單來講,QuaZip就是zlib(解壓縮軟件)的Qt封裝類,在Qt開發環境中很是好用。this

編譯步驟

  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文件,並將:.net

    #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. 順利編譯經過,生成動態連接庫。unix

感想

  1. 不少開源軟件對windows系統的支持不是很好,就像QuaZip,若是你用zlib源碼一塊兒編譯,那會更蛋疼。
  2. 開軟軟件的維護更新是一大重要問題,上面那個bug實際上已經存在9年了,一直沒有獲得修改。
相關文章
相關標籤/搜索