Как я могу добавить zlib в существующую установку Qt. Я новичок в этом, поэтому, пожалуйста, дайте мне подробное описание! Заранее спасибо за помощь!
как добавить zlib к существующей установке qt
Ответы (4)
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 см. Комментарий Торбьёрна: достаточно использовать #include <QtZlib/zlib.h>
.
#include <QtZlib/zlib.h>
- person Thorbjørn Lindeijer; 19.01.2014
Текущий ответ действителен только для 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.
Если вы хотите использовать zlib для сжатия / распаковки, используйте qCompress / qUncompress.
По крайней мере, некоторые люди здесь хотят собрать Quazip, для которого требуется zlib.
Вот как я сделал это в Windows с помощью 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
И это работает и работает, но только в режиме выпуска для тестового приложения. В режиме отладки я получаю ошибки утверждения, и он не работает.