Скомпилируйте quazip под Windows 8.1 и QT Creator

Я новичок и пытаюсь использовать Quazip под qt 5.5. Поэтому я только что скачал исходники проекта http://quazip.sourceforge.net/ и открыл .pro файл. Когда я пытаюсь построить проект, я получаю несколько ошибок:

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

Чтобы избежать сборки zlib на окнах, которые я только что установил (отсюда: http://gnuwin32.sourceforge.net/packages/zlib.htm) полный пакет для windows в C: \ GnuWin32. Затем я добавил эту строку в файл .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

Но это не решило проблему. Какой самый простой способ использовать Quazip в Qt?

2

Решение

  1. Скачать квазип исходник с Quzip сайт
  2. Открыто Qt Creator quazip.pri
  3. Заменить все строки #include «zlib.h» или «#include < zlib.h>»

в

#include <QtZlib/zlib.h>
  1. Постройте проект и запустите юнит-тесты.
4

Другие решения


По вопросам рекламы [email protected]