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?
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
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? .