[gelöst] Zip mit zlib und quzip in QT

Alles rund um die Programmierung mit Qt
Antworten
24dan
Beiträge: 274
Registriert: 26. Juni 2006 14:15
Wohnort: Hamburg

[gelöst] Zip mit zlib und quzip in QT

Beitrag 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?
Zuletzt geändert von 24dan am 22. Juli 2011 13:53, insgesamt 1-mal geändert.
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)
softwaremaker
Beiträge: 149
Registriert: 1. April 2009 19:25

quazip

Beitrag 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).
24dan
Beiträge: 274
Registriert: 26. Juni 2006 14:15
Wohnort: Hamburg

Re: Zip mit zlib und quazip in QT

Beitrag 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.
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)
24dan
Beiträge: 274
Registriert: 26. Juni 2006 14:15
Wohnort: Hamburg

Re: Zip mit zlib und quzip in QT

Beitrag 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?
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)
softwaremaker
Beiträge: 149
Registriert: 1. April 2009 19:25

Re: Zip mit zlib und quzip in QT

Beitrag 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
24dan
Beiträge: 274
Registriert: 26. Juni 2006 14:15
Wohnort: Hamburg

Re: Zip mit zlib und quazip in QT

Beitrag 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'
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Zip mit zlib und quzip in QT

Beitrag 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
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
24dan
Beiträge: 274
Registriert: 26. Juni 2006 14:15
Wohnort: Hamburg

Re: Zip mit zlib und quzip in QT

Beitrag 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

Code: Alles auswählen

LIBS += C:/_deinQt-Ordner_/qt/lib/libzdll.a
hinzufügen.

@Christian81: vielen Dank für deinen Verweis, der hat geholfen... :oops:
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)
Antworten