2010-10-23 746 views

回答

10

zlib包含在覈心Qt庫中。如果你想在Qt程序中使用zlib函數,你只需要包含src/3rdparty/zlib中的zlib.h。見例如在src/corelib/tools中實現QByteArray。

如果您想要使用quazip,只需將庫添加到您的項目。它基於Qt庫。注意建立與你的Qt安裝相對應的正確的qyazip庫。

你得到正確的包括通過添加以下行到您的項目文件的路徑:

INCLUDEPATH += $$[QT_INSTALL_PREFIX]/src/3rdparty/zlib 

對於QT5,看到托爾比約恩的評論:這是足夠使用#include <QtZlib/zlib.h>

+2

感謝您的建議。我有類似的問題,並添加zlib所說的目錄INCLUDEDIRS使編譯進行良好。鏈接器不知道在哪裏尋找zlib鏈接,我也沒有我請幫助 – Septagram 2010-12-16 05:45:47

+0

你不必鏈接到zlib,zlib函數是QtCore4.dll的一部分 – hmuelner 2011-12-30 09:18:24

+2

從Qt 5開始,這個目錄通常是不可用的。幸運的是,該行也不再是必需的,因爲相反,zlib.h可以包含如下形式:'#include ' – 2014-01-19 19:27:49

7

如果要使用zlib進行壓縮/解壓縮,請使用qCompress/qUncompress

+1

沒有其實我想要添加它,以便我可以使用qyazip來壓縮目錄,所以.. :( – defiant 2010-10-24 13:58:14

2

至少有人在這裏想要建立Quazip,這需要zlib。

下面是我用quazip 0.4.3在windows上做的。

首先在quazip.pro我改變SUBDIRS才包含:

SUBDIRS=quazip 

然後我下載的zlib二進制文件和源來自: http://www.winimage.com/zLibDll/zlib125dll.zip [二進制] http://www.winimage.com/zLibDll/zlib125.zip [來源]

兩個鏈接來from http://zlib.net

然後在子文件夾quazip/quazip.pro中加入:

INCLUDEPATH += <path to zlib source> 
在Win32 {}部

我評論這一行:

# *-msvc*: QMAKE_LFLAGS += /IMPLIB:$$DESTDIR\\quazip.lib 

和我修改了LIBS線這樣:

*-msvc*: LIBS += -lzlibwapi -L<path to zlib binaries>/dll32 

我在zip.c和unzip.c還修改在

#include "zlib.h" 

成爲:

#include <zlib.h> 

之後,我建立這個到發佈模式,並得到一個DLL了。

然後在項目中使用此,我增加了以下配置:

INCLUDEPATH += <quazip source path> 
INCLUDEPATH += <zlib source path> 

LIBS += -L<quazip source path>\quazip\release -lquazip 

這建立和作品,但只有在發行模式下測試應用程序。在調試模式下,我得到斷言錯誤,並失敗。

7

當前答案僅適用於Qt4。由於Qt5,zlib頭文件存儲在不同的目錄中。使用QMAKE屬性QT_INSTALL_HEADERS您可以添加到您的.pro文件:

INCLUDEPATH += $$[QT_INSTALL_HEADERS]/QtZlib

此作品如建立quazip,如果你把它添加到quazip.pro

屬性$$[QT_INSTALL_HEADERS]指向QTDIR/qtbase/include/其中的謊言QtZlib/zlib.h。

在不改變includepath的情況下,您必須將每條include語句更改爲#include <QtZlib/zlib.h>,正如Thorbjørn所述。

相關問題