hmu*_*ner 11
zlib包含在核心Qt库中.如果要在Qt程序中使用zlib函数,则只需要包含src/3rdparty/zlib中的zlib.h.参见例如src/corelib/tools中的QByteArray的实现.
如果要使用quazip,只需将库添加到项目中即可.它基于Qt库.注意构建与Qt安装相对应的正确qyazip库.
通过将以下行添加到项目文件中,可以获得正确的包含路径:
INCLUDEPATH += $$[QT_INSTALL_PREFIX]/src/3rdparty/zlib
Run Code Online (Sandbox Code Playgroud)
对于Qt5,请参阅Thorbjørn的评论:它足以使用#include <QtZlib/zlib.h>.
目前的答案仅对Qt4有效.从Qt5开始,zlib头文件存储在不同的目录中.使用qmake属性,QT_INSTALL_HEADERS您可以添加到.pro文件:
INCLUDEPATH += $$[QT_INSTALL_HEADERS]/QtZlib
如果你把它添加到quazip.pro,这可以用来建立quazip
该属性$$[QT_INSTALL_HEADERS]指向QTDIR/qtbase/include/QtZlib/zlib.h.
在不更改includepath的情况下,您必须将每个include语句更改#include <QtZlib/zlib.h>为Thorbjørn所评论的.
至少这里有些人想要构建 Quazip,这需要 zlib。
以下是我在 Windows 上使用 quazip 0.4.3 执行此操作的方法。
首先在 quazip.pro 中,我将 SUBDIRS 更改为仅包含:
SUBDIRS=quazip
Run Code Online (Sandbox Code Playgroud)
然后我从以下位置下载了 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>
Run Code Online (Sandbox Code Playgroud)
在 win32 {} 部分我评论了这一行:
# *-msvc*: QMAKE_LFLAGS += /IMPLIB:$$DESTDIR\\quazip.lib
Run Code Online (Sandbox Code Playgroud)
我将 LIBS 行修改为:
*-msvc*: LIBS += -lzlibwapi -L<path to zlib binaries>/dll32
Run Code Online (Sandbox Code Playgroud)
我还在zip.c和unzip.c中修改了
#include "zlib.h"
Run Code Online (Sandbox Code Playgroud)
成为:
#include <zlib.h>
Run Code Online (Sandbox Code Playgroud)
之后我将其构建为发布模式并获得了 DLL。
然后在项目中使用它,我添加了以下配置:
INCLUDEPATH += <quazip source path>
INCLUDEPATH += <zlib source path>
LIBS += -L<quazip source path>\quazip\release -lquazip
Run Code Online (Sandbox Code Playgroud)
它可以构建并运行,但仅限于测试应用程序的发布模式。在调试模式下,我收到断言错误并且失败。
| 归档时间: |
|
| 查看次数: |
26648 次 |
| 最近记录: |