Как добавить 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 для тестового приложения. В режиме отладки я получаю ошибки утверждения и не получается.