在Windows 8.1和qt creator下编译quazip

时间:2015-09-16 14:11:00

标签: c++ qt quazip

我是新手并试图在qt 5.5下使用Quazip。所以我刚刚从http://quazip.sourceforge.net/下载了项目源并打开了.pro文件。当我尝试构建项目时,我遇到了多个错误:

C1083: Cannot open include file: 'zlib.h': No such file or directory

为了避免在Windows上构建zlib,我刚刚安装(从这里:http://gnuwin32.sourceforge.net/packages/zlib.htm)C:\ GnuWin32中的Windows完整包。然后我在.pro文件中添加了这一行:

INCLUDEPATH += C:\GnuWin32\include

这产生了另一个错误:

Cannot open include file: 'unistd.h': No such file or directory

但改变这一行

#if 1           /* HAVE_UNISTD_H -- this line is updated by ./configure */

解决这个问题。

#if HAVE_UNISTD_H

不幸的是现在我得到25个未解析的外部符号,其中一些是:

quaadler32.obj:-1: error: LNK2019: unresolved external symbol adler32 referenced in function "public: virtual unsigned int __cdecl QuaAdler32::calculate(class QByteArray const &)" (?calculate@QuaAdler32@@UEAAIAEBVQByteArray@@@Z)
quacrc32.obj:-1: error: LNK2019: unresolved external symbol crc32 referenced in function "public: virtual unsigned int __cdecl QuaCrc32::calculate(class QByteArray const &)" (?calculate@QuaCrc32@@UEAAIAEBVQByteArray@@@Z)
unzip.obj:-1: error: LNK2001: unresolved external symbol crc32
quagzipfile.obj:-1: error: LNK2019: unresolved external symbol gzopen referenced in function "private: void * __cdecl QuaGzipFilePrivate::open(class QString const &,char const *)" (?open@QuaGzipFilePrivate@@AEAAPEAXAEBVQString@@PEBD@Z)
quaziodevice.obj:-1: error: LNK2019: unresolved external symbol deflateInit_ referenced in function "public: virtual bool __cdecl QuaZIODevice::open(class QFlags<enum QIODevice::OpenModeFlag>)" (?open@QuaZIODevice@@UEAA_NV?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z)
quaziodevice.obj:-1: error: LNK2019: unresolved external symbol inflate referenced in function "protected: virtual __int64 __cdecl QuaZIODevice::readData(char *,__int64)" (?readData@QuaZIODevice@@MEAA_JPEAD_J@Z)

我尝试添加这一行:

LIBS += -LC:\GnuWin32\lib

但那并没有解决问题。什么是在Qt下使用Quazip最简单的方法?

1 个答案:

答案 0 :(得分:4)

  1. quzip site
  2. 下载quazip源代码
  3. 由Qt Creator quazip.pri打开
  4. 替换所有字符串#include&#34; zlib.h&#34;或&#34; #include&lt; zlib.h&GT;&#34;
  5. #include <QtZlib/zlib.h>
    
    1. 构建项目并运行单元测试。