Quazip gebruiken, hoe?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben bezig met een applicatie in qt en ik wil graag een zip bestand uitpakken met meerdere bestanden.
Maar met quazip dat ik wil gaan gebruiken heb ik wat problemen:
Ik kan het compilen naar een dll, al heb ik liever dat ik het gewoon in in mijn project kan worden geinclude.
Als ik het probeer te includen moet ik ook zlib er meteen bijdoen maar ik begrijp niet waarom de dll en de source ervan?!
En als ik al de gedoe probeer te includen krijg ik vage foutmeldingen, zal ze later posten als ik het overnieuw probeer en als het echt nodig is(het zijn er 142, heb alle wijzigingen ongedaan gemaakt en wil het eigenlijk niet overnieuw proberen na de 4 keer dat ik het heb gedaan)
En ik kan weinig informatie vinden op internet vinden over quazip(geen tuto`s ofzo).
Zal ik toch moeten proberen om het via de dynamic libary te doen, krijg ik dan ook nog auto-complete?

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Hoe zinnig is dit topic precies zonder die "vage foutmeldingen"? Als wij niet weten wat je probleem is, hoe verwacht je dan hulp te krijgen?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Output van compile als ik de bestanden probeer te includen in mijn project:
Running build steps for project Nds-homebrew-manager...
Configuration unchanged, skipping qmake step.
Starting: "C:\QtSDK\mingw\bin\mingw32-make.exe" 
c:/qtsdk/desktop/qt/4.7.3/mingw/bin/qmake.exe -spec c:/QtSDK/Desktop/Qt/4.7.3/mingw/mkspecs/win32-g++ CONFIG+=release -o Makefile ../Nds-homebrew-manager/Nds-homebrew-manager.pro
C:/QtSDK/mingw/bin/mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory `C:/Users/Gebruiker/Documents/qtprojects/Nds-homebrew-manager-build-desktop'
g++ -c -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_WEBKIT_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I'c:/QtSDK/Desktop/Qt/4.7.3/mingw/include/QtCore' -I'c:/QtSDK/Desktop/Qt/4.7.3/mingw/include/QtNetwork' -I'c:/QtSDK/Desktop/Qt/4.7.3/mingw/include/QtGui' -I'c:/QtSDK/Desktop/Qt/4.7.3/mingw/include/QtWebKit' -I'c:/QtSDK/Desktop/Qt/4.7.3/mingw/include' -I'c:/QtSDK/Desktop/Qt/4.7.3/mingw/include/ActiveQt' -I'release' -I'.' -I'../Nds-homebrew-manager' -I'.' -I'c:/QtSDK/Desktop/Qt/4.7.3/mingw/mkspecs/win32-g++' -o release/webstorebrowser.o ../Nds-homebrew-manager/webstorebrowser.cpp
g++ -c -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_WEBKIT_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I'c:/QtSDK/Desktop/Qt/4.7.3/mingw/include/QtCore' -I'c:/QtSDK/Desktop/Qt/4.7.3/mingw/include/QtNetwork' -I'c:/QtSDK/Desktop/Qt/4.7.3/mingw/include/QtGui' -I'c:/QtSDK/Desktop/Qt/4.7.3/mingw/include/QtWebKit' -I'c:/QtSDK/Desktop/Qt/4.7.3/mingw/include' -I'c:/QtSDK/Desktop/Qt/4.7.3/mingw/include/ActiveQt' -I'release' -I'.' -I'../Nds-homebrew-manager' -I'.' -I'c:/QtSDK/Desktop/Qt/4.7.3/mingw/mkspecs/win32-g++' -o release/quazip.o ../Nds-homebrew-manager/quazip.cpp
../Nds-homebrew-manager/quazip.cpp:66: warning: 'QuaZip::QuaZip()' redeclared without dllimport attribute: previous dllimport ignored
../Nds-homebrew-manager/quazip.cpp:71: warning: 'QuaZip::QuaZip(const QString&)' redeclared without dllimport attribute: previous dllimport ignored
../Nds-homebrew-manager/quazip.cpp:76: warning: 'QuaZip::QuaZip(QIODevice*)' redeclared without dllimport attribute: previous dllimport ignored
../Nds-homebrew-manager/quazip.cpp:81: warning: 'QuaZip::~QuaZip()' redeclared without dllimport attribute: previous dllimport ignored
../Nds-homebrew-manager/quazip.cpp:88: warning: 'bool QuaZip::open(QuaZip::Mode, zlib_filefunc_def*)' redeclared without dllimport attribute: previous dllimport ignored
../Nds-homebrew-manager/quazip.cpp:145: warning: 'void QuaZip::close()' redeclared without dllimport attribute after being referenced with dll linkage
../Nds-homebrew-manager/quazip.cpp:171: warning: 'void QuaZip::setZipName(const QString&)' redeclared without dllimport attribute: previous dllimport ignored
../Nds-homebrew-manager/quazip.cpp:181: warning: 'void QuaZip::setIoDevice(QIODevice*)' redeclared without dllimport attribute: previous dllimport ignored
../Nds-homebrew-manager/quazip.cpp:191: warning: 'int QuaZip::getEntriesCount() const' redeclared without dllimport attribute: previous dllimport ignored
../Nds-homebrew-manager/quazip.cpp:205: warning: 'QString QuaZip::getComment() const' redeclared without dllimport attribute: previous dllimport ignored
../Nds-homebrew-manager/quazip.cpp:224: warning: 'bool QuaZip::setCurrentFile(const QString&, QuaZip::CaseSensitivity)' redeclared without dllimport attribute: previous dllimport ignored
../Nds-homebrew-manager/quazip.cpp:267: warning: 'bool QuaZip::goToFirstFile()' redeclared without dllimport attribute after being referenced with dll linkage
../Nds-homebrew-manager/quazip.cpp:279: warning: 'bool QuaZip::goToNextFile()' redeclared without dllimport attribute after being referenced with dll linkage
../Nds-homebrew-manager/quazip.cpp:293: warning: 'bool QuaZip::getCurrentFileInfo(QuaZipFileInfo*) const' redeclared without dllimport attribute: previous dllimport ignored
../Nds-homebrew-manager/quazip.cpp:336: warning: 'QString QuaZip::getCurrentFileName() const' redeclared without dllimport attribute after being referenced with dll linkage
../Nds-homebrew-manager/quazip.cpp:352: warning: 'void QuaZip::setFileNameCodec(QTextCodec*)' redeclared without dllimport attribute: previous dllimport ignored
../Nds-homebrew-manager/quazip.cpp:357: warning: 'void QuaZip::setFileNameCodec(const char*)' redeclared without dllimport attribute: previous dllimport ignored
../Nds-homebrew-manager/quazip.cpp:362: warning: 'QTextCodec* QuaZip::getFileNameCodec() const' redeclared without dllimport attribute: previous dllimport ignored
../Nds-homebrew-manager/quazip.cpp:367: warning: 'void QuaZip::setCommentCodec(QTextCodec*)' redeclared without dllimport attribute: previous dllimport ignored
../Nds-homebrew-manager/quazip.cpp:372: warning: 'void QuaZip::setCommentCodec(const char*)' redeclared without dllimport attribute: previous dllimport ignored
../Nds-homebrew-manager/quazip.cpp:377: warning: 'QTextCodec* QuaZip::getCommentCodec() const' redeclared without dllimport attribute: previous dllimport ignored
../Nds-homebrew-manager/quazip.cpp:382: warning: 'QString QuaZip::getZipName() const' redeclared without dllimport attribute: previous dllimport ignored
../Nds-homebrew-manager/quazip.cpp:387: warning: 'QIODevice* QuaZip::getIoDevice() const' redeclared without dllimport attribute: previous dllimport ignored
../Nds-homebrew-manager/quazip.cpp:394: warning: 'QuaZip::Mode QuaZip::getMode() const' redeclared without dllimport attribute: previous dllimport ignored
../Nds-homebrew-manager/quazip.cpp:399: warning: 'bool QuaZip::isOpen() const' redeclared without dllimport attribute after being referenced with dll linkage
../Nds-homebrew-manager/quazip.cpp:404: warning: 'int QuaZip::getZipError() const' redeclared without dllimport attribute: previous dllimport ignored
../Nds-homebrew-manager/quazip.cpp:409: warning: 'void QuaZip::setComment(const QString&)' redeclared without dllimport attribute: previous dllimport ignored
../Nds-homebrew-manager/quazip.cpp:414: warning: 'bool QuaZip::hasCurrentFile() const' redeclared without dllimport attribute after being referenced with dll linkage
../Nds-homebrew-manager/quazip.cpp:419: warning: 'void* QuaZip::getUnzFile()' redeclared without dllimport attribute: previous dllimport ignored
../Nds-homebrew-manager/quazip.cpp:424: warning: 'void* QuaZip::getZipFile()' redeclared without dllimport attribute: previous dllimport ignored
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -mthreads -Wl -Wl,-subsystem,windows -o release/Nds-homebrew-manager.exe object_script.Nds-homebrew-manager.Release  -L'c:/QtSDK/Desktop/Qt/4.7.3/mingw/lib' -lmingw32 -lqtmain -lQtWebKit4 -lQtGui4 -lQtNetwork4 -lQtCore4 -LC:\OpenSSL-Win32_full\lib 
mingw32-make[1]: Leaving directory `C:/Users/Gebruiker/Documents/qtprojects/Nds-homebrew-manager-build-desktop'
./release/quazip.o:quazip.cpp:(.text+0x177): undefined reference to `unzGoToNextFile'
./release/quazip.o:quazip.cpp:(.text+0x1df): undefined reference to `unzGoToFirstFile'
./release/quazip.o:quazip.cpp:(.text+0x224): undefined reference to `unzGetGlobalInfo'
./release/quazip.o:quazip.cpp:(.text+0x2e1): undefined reference to `unzOpen2'
./release/quazip.o:quazip.cpp:(.text+0x33a): undefined reference to `zipOpen2'
./release/quazip.o:quazip.cpp:(.text+0x6aa): undefined reference to `unzGetCurrentFileInfo'
./release/quazip.o:quazip.cpp:(.text+0x7b6): undefined reference to `unzGetCurrentFileInfo'
./release/quazip.o:quazip.cpp:(.text+0xafe): undefined reference to `zipClose'
./release/quazip.o:quazip.cpp:(.text+0xb4f): undefined reference to `unzClose'
./release/quazip.o:quazip.cpp:(.text+0xe3b): undefined reference to `unzGetCurrentFileInfo'
./release/quazip.o:quazip.cpp:(.text+0x12cc): undefined reference to `unzGetGlobalInfo'
./release/quazip.o:quazip.cpp:(.text+0x1359): undefined reference to `unzGetGlobalComment'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [release/Nds-homebrew-manager.exe] Error 1
mingw32-make: *** [release] Error 2
The process "C:\QtSDK\mingw\bin\mingw32-make.exe" exited with code 2.
Error while building project Nds-homebrew-manager (target: Desktop)
When executing build step 'Make'

[ Voor 0% gewijzigd door RobIII op 14-08-2011 17:31 ]


Acties:
  • 0 Henk 'm!

  • Gehakt
  • Registratie: Juli 2002
  • Laatst online: 12-09 08:01
Wat heb je in je .pro files staan en wat include je in je eigen sources?

Het makkelijkste is denk ik een .pro file te maken met "TEMPLATE = SUBDIRS". Verder moet je nog melden welke SUBDIRS je wil bouwen. Dit doe je met "SUBDIRS=QuaZip naamvanjeeigenprojectfolder". Vervolgens zet je naast die .pro file de map QuaZip en je project. Beiden mappen bevatten hun eigen .pro file.

In jouw source include je de QuaZip headers. In je .pro file voeg je de QuaZip map toe aan INCLUDE en je zorgt dat de QuaZip library op de juiste plaats in jouw gebouwde applicatie komt. Dit laaste kan door DESTDIR= toe te voegen aan de .pro file van quazip.

[ Voor 38% gewijzigd door Gehakt op 15-08-2011 08:53 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Zal ik later proberen, krijg mijn computer weer eens niet op afstand aan!
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
Inhoud van .pro bestand:
#-------------------------------------------------
#
# Project created by QtCreator 2011-07-09T20:43:19
#
#-------------------------------------------------

QT       += core gui network webkit

TARGET = Nds-homebrew-manager
TEMPLATE = app


SOURCES += main.cpp\
        nhbm.cpp \
    about.cpp \
    settings.cpp \
    webstore.cpp \
    webstorebrowser.cpp \
    updater.cpp \
    import.cpp \
    linuxfsselect.cpp \
    quacrc32.cpp \
    quaadler32.cpp \
    zip.c \
    unzip.c \
    quazipnewinfo.cpp \
    quazipfile.cpp \
    quazip.cpp \
    qioapi.cpp \
    JlCompress.cpp

HEADERS  += nhbm.h \
    about.h \
    settings.h \
    webstore.h \
    webstorebrowser.h \
    updater.h \
    import.h \
    linuxfsselect.h \
    quaadler32.h \
    quacrc32.h \
    quachecksum32.h \
    JlCompress.h \
    crypt.h \
    zip.h \
    unzip.h \
    quazipnewinfo.h \
    quazipfileinfo.h \
    quazip_global.h \
    quazip.h \
    ioapi.h

FORMS    += nhbm.ui \
    about.ui \
    settings.ui \
    webstore.ui \
    webstorebrowser.ui \
    updater.ui \
    import.ui \
    linuxfsselect.ui

OTHER_FILES +=

RESOURCES += \
    rsc.qrc

Woensdag a.s. kan ik weer bij pc 250km hier vandaan of met een beetje geluk in de middag

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Krijg nu een makefile.debug not found fout, ga nu zoeken op google en hoop dat het niks ernstigs is

Acties:
  • 0 Henk 'm!

  • Gehakt
  • Registratie: Juli 2002
  • Laatst online: 12-09 08:01
QMake genereert makefiles aan de hand van de .pro file. Als je een makefile mist moet je misschien even cleanen en opnieuw bouwen dan genereert qmake ze wel weer opnieuw. DAarnaast zie ik dat je quazip in jouw applicatie bouwt. DAt zou ik dus in een aparte .pro file doen en een dll bouwen. In fe applicatie include je alleen de quazip headers. Als je er niet uit komt kan ik volgende week je wel iets uitgebreider helpen.

[ Voor 42% gewijzigd door Gehakt op 16-08-2011 14:53 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Gehakt schreef op dinsdag 16 augustus 2011 @ 12:49:
QMake genereert makefiles aan de hand van de .pro file. Als je een makefile mist moet je misschien even cleanen en opnieuw bouwen dan genereert qmake ze wel weer opnieuw. DAarnaast zie ik dat je quazip in jouw applicatie bouwt. DAt zou ik dus in een aparte .pro file doen en een dll bouwen. In fe applicatie include je alleen de quazip headers. Als je er niet uit komt kan ik volgende week je wel iets uitgebreider helpen.
Bedankt! zal het morgen proberen om de template=lib in quazip folder te wijzigen naar template=dll
offtopic:
*lemmymet heeft weer goeie hoop :)

Acties:
  • 0 Henk 'm!

  • Gehakt
  • Registratie: Juli 2002
  • Laatst online: 12-09 08:01
Als je een dll ofwel een shared library wil maken zet je .pro file: template = lib en config += shared

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
De fout van makefile kwam van de project bestand met template=subdirs
inhoud:

TEMPLATE = SUBDIRS
SUBDIRS = quazip nhbm

Heb net een goeie compile begin nu met ermee werken, zal later posten of alles echt goed werkt.

  • Gehakt
  • Registratie: Juli 2002
  • Laatst online: 12-09 08:01
Lukt het? Ik zou testen of de atEnd() functie wel goed werkt. In mijn ervaring was dat niet het geval en werd er 10% soms niet gelezen van het eind van de bestanden. Dat zou ik even goed testen.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Tja, het lukte niet goed maar ik heb de klasse jlcompress gebruikt en dat was gewoon 1 lijntje code en klaar :)
Pagina: 1