web-dev-qa-db-fra.com

Erreur de compilation - zlib.h manquant

J'essaie de compiler un logiciel sur Blue Gene Q à l'aide de compilateurs IBM XL et j'ai reçu ce message d'erreur:

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

J'ai installé une nouvelle version de zlib et mis à jour LD_LIBRARY_PATH avec $HOME/zlib/include

Est-ce que je manque quelque chose?

55
didymos

Il vous manque le chemin include pour placer les fichiers d'en-tête zlib. La définition de la variable d’environnement LD_LIBRARY_PATH S’applique aux liens dynamiques d’objets partagés (DLL, fichiers se terminant par .so).

La plupart des compilateurs ont l'option -I D'ajouter des chemins d'inclusion à la recherche. Et vous voudrez probablement utiliser -L Pour indiquer au compilateur où trouver la bibliothèque avec laquelle établir un lien, et utiliser -l Pour indiquer au compilateur de se lier avec zlib.

Par exemple.

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

Tu es absent zlib.h fichier d’en-tête, sous Linux, installez-le via:

Sudo apt-get install libz-dev

En fait, le module se présente comme zlib1g-dev dans le dépôt apt, il s’agit donc de l’appel à jour (février 2019):

Sudo apt install zlib1g-dev

Sur Fedora: Sudo dnf install zlib-devel _ (dans les anciennes versions: Sudo dnf install libz-devel).

Ceci fournira les fichiers de support de développement pour une bibliothèque implémentant la méthode de compression deflate trouvée dans gzip et PKZIP.

Si vous avez déjà la bibliothèque zlib, assurez-vous de compiler vos sources de code avec -lz. Voir: Comment corriger les références non définies pour gonfler/dégonfler des fonctions? .

149
kenorb