【发布时间】:2010-10-23 06:10:36
【问题描述】:
如何将 zlib 添加到现有的 Qt 安装中。我在这方面很新,所以请给我详细的描述! 提前感谢您的帮助!
【问题讨论】:
如何将 zlib 添加到现有的 Qt 安装中。我在这方面很新,所以请给我详细的描述! 提前感谢您的帮助!
【问题讨论】:
zlib 包含在核心 Qt 库中。如果你想在 Qt 程序中使用 zlib 函数,你只需要包含在 src/3rdparty/zlib 中的 zlib.h。参见例如QByteArray 在 src/corelib/tools 中的实现。
如果您想使用 quazip,只需将库添加到您的项目中即可。它基于 Qt 库。注意构建与您的 Qt 安装相对应的正确 qyazip 库。
您可以通过将以下行添加到项目文件中来获得正确的包含路径:
INCLUDEPATH += $$[QT_INSTALL_PREFIX]/src/3rdparty/zlib
对于 Qt5,请参阅 Thorbjørn 的评论:使用 #include <QtZlib/zlib.h> 就足够了。
【讨论】:
#include <QtZlib/zlib.h>
当前答案仅对 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 位于其中。
在不更改包含路径的情况下,您必须按照 Thorbjørn 的评论将每个包含语句更改为 #include <QtZlib/zlib.h>。
【讨论】:
如果要使用 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>
之后,我将其构建为发布模式并生成了一个 DLL。
然后在项目中使用这个,我添加了如下配置:
INCLUDEPATH += <quazip source path>
INCLUDEPATH += <zlib source path>
LIBS += -L<quazip source path>\quazip\release -lquazip
这可以构建和工作,但仅在测试应用的发布模式下。在调试模式下,我得到断言错误并且它失败了。
【讨论】: