Làm cách nào để thêm zlib vào cài đặt Qt hiện có. Tôi m khá mới trong này vì vậy xin vui lòng cho tôi mô tả chi tiết! Cảm ơn sự giúp đỡ của bạn trước!cách thêm zlib vào cài đặt qt hiện có
Trả lời
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>
.
Nếu bạn muốn sử dụng zlib để nén/giải nén, hãy sử dụng qCompress/qUncompress.
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
Í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.
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ả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
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
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' –