Seite 1 von 1
[gelöst] Zip mit zlib und quzip in QT
Verfasst: 16. Juli 2011 16:57
von 24dan
Hi ich habe vor für meine Anwendung den Projektordner mit Unterordnern und Dateien vom Benutzer sichern und wiederherstellen zu lassen. Hierbei habe ich an quzip gedacht.
FRAGE: Gibt es noch eine echte QT Lösung oder nur die zusatz Installation von *.h und *.dll´s für die oben genannte Lösung?
quazip
Verfasst: 16. Juli 2011 17:12
von softwaremaker
Du meinst sicher QuaZip.
Qt hat auch eine eingebaute qCompress( ) Funktion, die benutzt aber kein Standardformat. Du müsstes die Dateien einlesen, mit qCompress komprimieren und irgendwie strukturiert in eine Datei dann ausgeben.
zlib ist im Qt-SDK ja auch mit bei (qt/src/3rdparty/zlib) und wird wohl in die QtCore4.dll eingebunden.
QuaZip halte ich derzeit für die beste Lösung und die kleine DLL mitliefern ist kein Problem (70 kB).
Re: Zip mit zlib und quazip in QT
Verfasst: 16. Juli 2011 17:18
von 24dan
Danke okay
quazip sollte dann meine Lösung werden!
FRAGE:
Für quazip brauche ich doch aber zlib????
- Requirements
Just zlib and Qt 4. Well, Qt 4 depends on zlib anyway.
Re: Zip mit zlib und quzip in QT
Verfasst: 16. Juli 2011 17:23
von 24dan
FRAGE:
Wie ist den fürs WIN System die "Installation" von Quazip?
1. Brauche ich für das Zip und unzip alle *.h und *.cpp unter dem quazip Ordner wie kann ich das einfach in meinem QT Install Ordner unter C: unterbringen?
2. Okay die *.dll muss ich wohl für WIN erst noch kompilieren lassen?
Re: Zip mit zlib und quzip in QT
Verfasst: 16. Juli 2011 18:07
von softwaremaker
in die quazip.pro (die 2. im Unterverzeichnis "quazip") habe ich noch
INCLUDEPATH += C:/_deinQt-Ordner_/qt/src/3rdparty/zlib
hinzugefügt und dann quazip kompliert
In meinen Source-Ordner lege ich einen Unterordner "3rdparty" an, darin den Unterordner "quazip-0.3" und darein kopiere ich die erstellen Dateien "libquazip.a" und "quazip.dll".
In meiner eigenen .pro habe ich dann noch folgendes ergänzt:
Code: Alles auswählen
INCLUDEPATH += ../quazip-0.3/quazip \
C:/_deinQt-Ordner_/qt/src/3rdparty/zlib
LIBS += -L./3rdparty/quazip-0.3 \
-lquazip
die quazip.dll liefere ich dann mit meinem Programm aus (gleicher Ordner wie exe)
Update:
Damit "INCLUDEPATH += ../quazip-0.3/quazip" funktioniert müssen die quazip-sourcen natürlich von deinem .pro-File aus ein Verzeichnis zurück, im Ordner "quazip-0.3" sein
Re: Zip mit zlib und quazip in QT
Verfasst: 17. Juli 2011 17:09
von 24dan
okay habe meine quazip.pro aus dem 2. Unterordner jetzt wie folgt abgeändert...
Code: Alles auswählen
TEMPLATE = lib
CONFIG += qt warn_on
QT -= gui
DEPENDPATH += .
INCLUDEPATH += . \
C:/Programme/QT/qt/src/3rdparty/zlib
# Input
HEADERS += *.h
SOURCES += *.c *.cpp
unix {
headers.path=$$PREFIX/include/quazip
headers.files=$$HEADERS
target.path=$$PREFIX/lib
INSTALLS += headers target
OBJECTS_DIR=.obj
MOC_DIR=.moc
LIBS += -lz
}
win32 {
headers.path=$$PREFIX/include/quazip
headers.files=$$HEADERS
target.path=$$PREFIX/lib
INSTALLS += headers target
LIBS += -lzlib
*-msvc*: QMAKE_LFLAGS += /IMPLIB:$$DESTDIR\\quazip.lib
}
DEFINES += QUAZIP_BUILD
Fehlermeldung beim Kompilieren:
Code: Alles auswählen
mingw32-make: Leaving directory `C:/Dokumente und Einstellungen/Video/Eigene Dateien/Downloads/quazip-0.4.1/quazip-0.4.1/quazip'
c:/programme/qt/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe: cannot find -lzlib
collect2: ld returned 1 exit status
mingw32-make[1]: *** [debug\quazip.dll] Error 1
mingw32-make: *** [debug] Error 2
Beendet mit Rückgabewert 2.
Fehler beim Erstellen des Projekts Desktop
Beim Ausführen des Build-Schritts 'Make'
Re: Zip mit zlib und quzip in QT
Verfasst: 17. Juli 2011 17:35
von Christian81
Der Linker muss schon wissen wo er die zlib-library finden kann.
Siehe
http://doc.trolltech.com/4.7/qmake-vari ... .html#libs
Re: Zip mit zlib und quzip in QT
Verfasst: 19. Juli 2011 11:14
von 24dan
softwaremaker hat geschrieben:in die quazip.pro (die 2. im Unterverzeichnis "quazip") habe ich noch
INCLUDEPATH += C:/_deinQt-Ordner_/qt/src/3rdparty/zlib
hinzugefügt und dann quazip kompliert
Jetzt hats geklappt:
Musste noch in das *.pro File mit dem schon eingetragenen INCLUDEPATH die
hinzufügen.
@Christian81: vielen Dank für deinen Verweis, der hat geholfen...
