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年了,一直沒有得到修改。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM