C++ 如何将zlib添加到现有的qt安装中

C++ 如何将zlib添加到现有的qt安装中,c++,qt,zlib,C++,Qt,Zlib,如何将zlib添加到现有的Qt安装中。我在这方面很新,所以请给我详细的描述! 提前谢谢你的帮助 如果要使用zlib进行压缩/解压缩,请使用。zlib包含在核心Qt库中。如果您想在Qt程序中使用zlib函数,只需包含src/3rdparty/zlib中的zlib.h即可。例如,参见src/corelib/tools中QByteArray的实现 如果您想使用quazip,只需将库添加到您的项目中即可。它基于Qt库。注意构建与Qt安装相对应的正确qyazip库 通过向项目文件中添加以下行,可以获得正确

如何将zlib添加到现有的Qt安装中。我在这方面很新,所以请给我详细的描述!
提前谢谢你的帮助

如果要使用zlib进行压缩/解压缩,请使用。

zlib包含在核心Qt库中。如果您想在Qt程序中使用zlib函数,只需包含src/3rdparty/zlib中的zlib.h即可。例如,参见src/corelib/tools中QByteArray的实现

如果您想使用quazip,只需将库添加到您的项目中即可。它基于Qt库。注意构建与Qt安装相对应的正确qyazip库

通过向项目文件中添加以下行,可以获得正确的包含路径:

INCLUDEPATH += $$[QT_INSTALL_PREFIX]/src/3rdparty/zlib

关于Qt5,请参见Thorbjørn的评论:使用
#include

就足够了,至少这里有些人想要构建Quazip,这需要zlib

下面是我如何在windows上使用quazip 0.4.3实现的

首先在quazip.pro中,我将子目录更改为仅包含:

SUBDIRS=quazip
然后我从以下网站下载了zlib二进制文件和源代码: [二进制文件] [来源]

两个链接都来自

然后在子文件夹quazip/quazip.pro中,我添加了:

INCLUDEPATH += <path to zlib source>
我将LIBS行修改为:

*-msvc*: LIBS += -lzlibwapi -L<path to zlib binaries>/dll32
成为:

#include <zlib.h>
#包括
在那之后,我构建了这个发布模式,并得到了一个DLL

然后在要使用此功能的项目中,我添加了以下配置:

INCLUDEPATH += <quazip source path>
INCLUDEPATH += <zlib source path>

LIBS += -L<quazip source path>\quazip\release -lquazip
INCLUDEPATH+=
INCLUDEPATH+=
LIBS+=-L\quazip\release-lquazip

这将构建并运行,但仅在测试应用程序的发布模式下。在调试模式下,我得到断言错误,但它失败。

当前答案仅对Qt4有效。由于Qt5,zlib头文件存储在不同的目录中。使用qmake属性
QT\u INSTALL\u头文件
可以添加到.pro文件中:

INCLUDEPATH+=$$[QT\u安装头]/QtZlib

例如,如果您将其添加到quazip.pro中,则可以构建quazip

属性
$$[QT\u INSTALL\u HEADERS]
指向
QTDIR/qtbase/include/
,其中包含QtZlib/zlib.h


在不更改includepath的情况下,您必须将每个include语句更改为Thorbjørn评论的
#include

不,实际上我想添加它,以便使用qyazip压缩目录,因此(谢谢你的建议。我也有类似的问题,将zlib said目录添加到INCLUDEDIRS可以使编译顺利进行。直到链接阶段。链接器不知道在哪里可以找到要链接的zlib,我也不知道。请帮助。你不必链接zlib,zlib函数是QtCore4.dll的一部分。从Qt 5开始,此目录是正常的ly不可用。幸运的是,这一行也不再必要,因为zlib.h可以像这样包含:
#include
在我的头撞上这一行之后,我可以保证Thorbjørn的答案是有效的。VS2010和Qt 5.2.0。在类似的问题中,有一个完全不同的答案。你不应该在一个时间使用Qt内部zlib陆上通信线:
#include <zlib.h>
INCLUDEPATH += <quazip source path>
INCLUDEPATH += <zlib source path>

LIBS += -L<quazip source path>\quazip\release -lquazip