Wie lese / schreibe ich gezippte Dateien?

8

Wie lese / schreibe ich gezippte Dateien in C ++?

Die iostream -Wrapper-Klassen sehen hier gut aus und hier ist ein einfaches Anwendungsbeispiel:

%Vor%

Aber ich konnte es nicht verbinden (obwohl ich ein /usr/lib/libz.a habe). Ein einfaches

%Vor%

hat es nicht gemacht ( undefined reference to gz::gzstreambase::~gzstreambase() ).

    
Frank 08.03.2009, 20:45
quelle

5 Antworten

8

Offensichtlich brauchst du die cpp-Datei, in der auch der gzstreambase-Destruktor definiert ist, also gzstream.cpp (das ist der Verbindungsfehler). libz ist nur eine c-api für gzip, es kennt nichts von c ++ stdlib streams.

Boosts iostream lib hat auch gzip und bzip2 Streams.

BEARBEITEN: Der Link wurde aktualisiert, um auf die neueste Version des Codes zu verweisen, der einen größeren Bugfix enthält.

    
Macke 08.03.2009, 20:51
quelle
13

Ziehen Sie die Verwendung der Boost-Zip-Filter in Betracht. Ihnen zufolge unterstützt es bzip , gzip und zlib Format.

Johannes Schaub - litb 08.03.2009 20:51
quelle
12

Um mehr Details zu geben als das, was die anderen Benutzer kurz erwähnt haben, habe ich es geschafft, mit gzstream auf meinem Computer zu arbeiten.

Zuerst habe ich gzstream heruntergeladen und in meinem Haus installiert (die beiden letzten Zeilen können zu deinem ~/.bash_profile hinzugefügt werden):

%Vor%

Dann habe ich die Installation getestet:

%Vor%

Schließlich schrieb ich ein Dummy-Programm, um zu überprüfen, ob ich die Bibliothek effektiv nutzen konnte:

%Vor%

Hier ist der Code (sehr minimalistisch, sollte für echte Anwendungen viel verbessert werden!):

%Vor%

Hier ist, wie ich es zusammengestellt habe:

%Vor%

Und last but not least, hier ist, wie ich es benutzt habe:

%Vor%     
tflutre 20.10.2011 20:13
quelle
3

Ich hatte dieses Problem auch mit dem alten GCC-Compiler. Ich habe das gerade behoben, indem ich eine Header-Version von gzstream gemacht habe, die einfacher zu benutzen sein sollte.

Ссылка

    
Piti Ongmongkolkul 21.12.2011 22:44
quelle
1

Dies ist von der "Gzstream Library Home Page"

  

Kompilieren Sie gzstream.C entweder von Hand,   Lege es in eine Bibliothek und bewege dich   gzstream.h in die Include-Suche   Pfad Ihres Compilers. Oder benutze die   Makefile zur Verfügung gestellt, passen Sie es an   Variablen und folgen Sie den Bemerkungen in   das Makefile.

    
Mykola Golubyev 08.03.2009 21:01
quelle

Tags und Links