webentwicklung-frage-antwort-db.com.de

Kompilierungsfehler - zlib.h fehlt

Ich versuche, Software auf Blue Gene Q mit IBM XL-Compilern zu kompilieren, und es wird folgende Fehlermeldung angezeigt:

"iostreams/zlib.cpp", line 19.10: 1540-0836 (S) The #include file "zlib.h" is not found.
make[3]: *** [zlib.o] Error 1

Ich habe eine neue Version von zlib installiert und LD_LIBRARY_PATH Mit $HOME/zlib/include Aktualisiert.

Vermisse ich etwas?

55
didymos

Sie müssen nicht den Pfad include angeben, unter dem Sie die zlib-Headerdateien ablegen. Das Setzen der Umgebungsvariablen LD_LIBRARY_PATH Dient zum dynamischen Verknüpfen von gemeinsam genutzten Objekten (DLLs, dh Dateien, die mit .so Enden).

Die meisten Compiler haben die Option -I, Um Suchpfade hinzuzufügen. Und Sie möchten wahrscheinlich -L Verwenden, um dem Compiler mitzuteilen, wo sich die zu verlinkende Bibliothek befindet, und -l, Um dem Compiler mitzuteilen, dass er mit zlib verlinken soll.

Z.B.

$ c++ -I$HOME/zlib/include some_file.cpp -L$HOME/zlib/lib -lz
14

Sie vermissen die Header-Datei zlib.h, Unter Linux installieren Sie sie über:

Sudo apt-get install libz-dev

Tatsächlich wird das Modul im Apt Repo als zlib1g-dev Dargestellt. Dies ist also der aktuelle Aufruf (Februar 2019):

Sudo apt install zlib1g-dev

Auf Fedora: Sudo dnf install zlib-devel (In älteren Versionen: Sudo dnf install libz-devel).

Dadurch werden die Entwicklungsunterstützungsdateien für eine Bibliothek bereitgestellt, die die in gzip und PKZIP enthaltene Deflate-Komprimierungsmethode implementiert.

Wenn Sie bereits eine zlib Bibliothek haben, stellen Sie sicher, dass Sie Ihre Codequellen mit -lz Kompilieren. Siehe: Wie undefinierte Verweise auf Funktionen zum Aufpumpen/Abpumpen korrigiert werden? .

149
kenorb