How to build Quazip 0.5.1 on Windows 7?

I am trying to create quazip libary (version 0.5.1) on Windows 7 (32-bit) with Qt 5.0.1. Installed 32-bit LGPL.

When I run Qt-Commandprompt:

qmake mingw32-make 

with the directory installed in the folder in which I extracted Quazip (C: \ Qt \ quazip-0.5.1 \ quazip), I get the following error log:

 C:\Qt\quazip-0.5.1\quazip>mingw32-make mingw32-make -f Makefile.Release mingw32-make[1]: Entering directory 'C:/Qt/quazip-0.5.1/quazip' g++ -Wl,-s -shared -mthreads -Wl,--out-implib,release\libquazip.a -o release\qua zip.dll object_script.quazip.Release -LC:\Qt\Qt5\5.0.1\mingw47_32\lib -lQt5Core ./release\unzip.o:unzip.c:(.text+0x1008): undefined reference to `crc32' ./release\unzip.o:unzip.c:(.text+0x10aa): undefined reference to `inflate' ./release\unzip.o:unzip.c:(.text+0x10da): undefined reference to `crc32' ./release\unzip.o:unzip.c:(.text+0x1110): undefined reference to `crc32' ./release\unzip.o:unzip.c:(.text+0x1327): undefined reference to `inflateEnd' ./release\unzip.o:unzip.c:(.text+0x1727): undefined reference to `get_crc_table' ./release\unzip.o:unzip.c:(.text+0x186f): undefined reference to `inflateInit2_' ./release\zip.o:zip.c:(.text+0xac7): undefined reference to `crc32' ./release\zip.o:zip.c:(.text+0xb7c): undefined reference to `deflate' ./release\zip.o:zip.c:(.text+0xcdf): undefined reference to `deflate' ./release\zip.o:zip.c:(.text+0xef5): undefined reference to `deflateEnd' ./release\zip.o:zip.c:(.text+0x13a8): undefined reference to `get_crc_table' ./release\zip.o:zip.c:(.text+0x1af9): undefined reference to `deflateInit2_' ./release\quaadler32.o:quaadler32.cpp:(.text+0x2e): undefined reference to `adle r32' ./release\quaadler32.o:quaadler32.cpp:(.text+0x61): undefined reference to `adle r32' ./release\quaadler32.o:quaadler32.cpp:(.text+0xa1): undefined reference to `adle r32' ./release\quaadler32.o:quaadler32.cpp:(.text+0xb1): undefined reference to `adle r32' c:/qt/qt5/tools/mingw/bin/../lib/gcc/i686-w64-mingw32/4.7.2/../../../../i686-w64 -mingw32/bin/ld.exe: ./release\quaadler32.o: bad reloc address 0x0 in section `. rdata$_ZTI13QuaChecksum32[__ZTI13QuaChecksum32]' collect2.exe: error: ld returned 1 exit status Makefile.Release:106: recipe for target 'release\quazip.dll' failed mingw32-make[1]: *** [release\quazip.dll] Error 1 mingw32-make[1]: Leaving directory 'C:/Qt/quazip-0.5.1/quazip' makefile:34: recipe for target 'release' failed mingw32-make: *** [release] Error 2 

But in my Zlib-Folder (C: \ Qt \ Qt5 \ 5.0.1 \ Src \ qtbase \ src \ 3rdparty \ zlib) all the files listed are installed.

.

As I tried to solve the problem, I added in quazip.pro and in quazip.pri:

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

as suggested here .

All the other solutiuons I found on Google so far do not help.

I hope one of you can help me.

Hi LVreg

+4
source share
2 answers

The problem is that QuaZIP cannot find the zlib library. You must specify the path to the headers as well as the library when qmake starts:

 qmake "INCLUDEPATH+=C:/Qt/Qt5/5.0.1/Src/qtbase/src/3rdparty/zlib" "LIBS+=-LC:/Qt/Qt5/5.0.1/Src/qtbase/src/3rdparty/zlib -lz" mingw32-make 

There is a full explanation on my blog if you want to check it out: http://www.antonioborondo.com/2014/10/22/zipping-and-unzipping-files-with-qt/

+3
source

Here's what worked for me (QuaZip 0.7 on Windows 7, compiled with 32 bit MSVC13):

At the command prompt, type:

 SET INCLUDE=<PathToZib\include>;%INCLUDE% SET LIB=<PathToZib\lib>;%LIB% qmake PREFIX=<FolderWhereInstallWillPutFiles> LIBS+=<PathToZib\lib>/zdll.lib nmake nmake install 

everything between <> should be changed to your applicable path

Note: in LIBS + = use the / part instead of \ as a folder separator

+1
source

All Articles