2010-10-23 28 views

Trả lời

10

zlib được chứa trong các thư viện Qt lõi. Nếu bạn muốn sử dụng các hàm zlib trong một chương trình Qt, bạn chỉ phải bao gồm zlib.h trong src/3rdparty/zlib. Xem ví dụ việc thực hiện QByteArray trong src/corelib/tools.

Nếu bạn muốn sử dụng quazip, chỉ cần thêm thư viện vào dự án của bạn. Nó dựa trên các thư viện Qt. Hãy cẩn thận để xây dựng thư viện qyazip đúng tương ứng với cài đặt Qt của bạn.

Bạn nhận được chính xác bao gồm đường dẫn bằng cách thêm dòng sau vào tập tin dự án của bạn:

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

Đối Qt5, xem bình luận Thorbjørn của: nó là đủ để sử dụng #include <QtZlib/zlib.h>.

+2

Cảm ơn lời khuyên.Tôi có vấn đề tương tự, và thêm zlib cho biết thư mục để INCLUDEDIRS làm cho biên dịch đi okay. Linker không biết nơi để tìm zlib để liên kết với và không làm I. Xin vui lòng giúp đỡ – Septagram

+0

Bạn không cần phải liên kết với zlib, các chức năng zlib là một phần của QtCore4.dll – hmuelner

+2

Kể từ Qt 5 này May mắn thay, dòng này cũng không còn cần thiết vì thay vào đó zlib.h có thể được bao gồm như sau: '#include ' –

7

Nếu bạn muốn sử dụng zlib để nén/giải nén, hãy sử dụng qCompress/qUncompress.

+1

không có thực sự tôi muốn thêm nó để tôi có thể sử dụng qyazip fro nén thư mục, vì vậy .. :( – defiant

2

Ít nhất một số người ở đây muốn xây dựng Quazip, yêu cầu zlib.

Đây là cách tôi đã thực hiện trên cửa sổ với mã zip 0.4.3.

đầu tiên trong quazip.pro tôi đã thay đổi subdirs chỉ chứa:

SUBDIRS=quazip 

Sau đó, tôi đã tải về mã nhị phân zlib và nguồn từ: http://www.winimage.com/zLibDll/zlib125dll.zip [mã nhị phân] http://www.winimage.com/zLibDll/zlib125.zip [nguồn]

cả hai liên kết đến từ http://zlib.net

Sau đó, trong thư mục con quazip/quazip.pro Tôi đã thêm:

INCLUDEPATH += <path to zlib source> 

trong phần win32 {} Tôi nhận xét dòng này:

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

và tôi sửa đổi dòng libs này:

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

Tôi cũng sửa đổi trong zip.c và unzip.c các

#include "zlib.h" 

để trở thành:

012.
#include <zlib.h> 

Sau đó, tôi xây dựng chế độ này thành Chế độ phát hành và có tệp DLL.

Sau đó, trong dự án sử dụng điều này, tôi đã thêm các cấu hình sau:

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

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

Và đó xây dựng và công trình, nhưng chỉ trong chế độ Release cho ứng dụng thử nghiệm. Trong chế độ gỡ lỗi tôi nhận được lỗi xác nhận và nó không thành công.

7

Câu trả lời hiện tại chỉ hợp lệ cho Qt4. Vì Qt5, tệp header zlib được lưu trong một thư mục khác.Sử dụng tài sản qmake QT_INSTALL_HEADERS bạn có thể thêm vào tập tin .pro của bạn:

INCLUDEPATH += $$[QT_INSTALL_HEADERS]/QtZlib

này hoạt động ví dụ để tạo mã thông qua, nếu bạn thêm nó vào quazip.pro

Thuộc tính $$[QT_INSTALL_HEADERS] trỏ đến QTDIR/qtbase/include/ trong đó nằm QtZlib/zlib.h.

Nếu không thay đổi includepath, bạn phải thay đổi mọi câu lệnh bao gồm thành #include <QtZlib/zlib.h> như được Thorbjørn nhận xét.

Các vấn đề liên quan