Как добавить zlib в существующую qt-установку
Как добавить zlib в существующую установку Qt. Я немного новый в этом, поэтому, пожалуйста, дайте мне подробное описание!
Спасибо за вашу помощь заранее!
Ответы
Ответ 1
zlib содержится в основных Qt-библиотеках. Если вы хотите использовать функции zlib в Qt-программе, вам нужно включить zlib.h, который находится в src/3rdparty/zlib. См. реализация QByteArray в src/corelib/tools.
Если вы хотите использовать quazip, просто добавьте библиотеку в свой проект. Он основан на библиотеках Qt. Позаботьтесь о создании правильной библиотеки qyazip, которая соответствует вашей установке Qt.
Вы получите правильный путь включения, добавив следующую строку в файл проекта:
INCLUDEPATH += $$[QT_INSTALL_PREFIX]/src/3rdparty/zlib
Для Qt5 см. комментарий Thorbjørn: достаточно использовать #include <QtZlib/zlib.h>
.
Ответ 2
Если вы хотите использовать zlib для сжатия/сжатия, используйте qCompress/qUncompress.
Ответ 3
Текущий ответ действителен только для 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.
Без изменения includeepath вам нужно изменить каждый include-statement на #include <QtZlib/zlib.h>
, как прокомментировал Thorbjørn.
Ответ 4
По крайней мере, некоторые люди здесь хотят создать Quazip, для чего требуется zlib.
Вот как я это сделал на окнах с quazip 0.4.3.
Сначала в quazip.pro я изменил SUBDIRS, чтобы содержать только:
SUBDIRS=quazip
Затем я загрузил двоичные файлы zlib и источник из:
http://www.winimage.com/zLibDll/zlib125dll.zip [двоичные файлы]
http://www.winimage.com/zLibDll/zlib125.zip [источник]
обе ссылки пришли из 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>
После этого я создаю это в режиме Release и получаю DLL.
Затем в проекте, чтобы использовать это, я добавил следующую конфигурацию:
INCLUDEPATH += <quazip source path>
INCLUDEPATH += <zlib source path>
LIBS += -L<quazip source path>\quazip\release -lquazip
И это строит и работает, но только в режиме Release для тестового приложения. В режиме отладки я получаю ошибки утверждения и не получается.