web-dev-qa-db-fra.com

Le compilateur ne trouve pas libxml/parser.h

Je suis sur Debian 8 (Jessie), 64 bits. J'ai installé libxml2-dev, qui se trouve maintenant dans /usr/include/libxml2/libxml.

Mais quand je le fais (tout comme le dit libxml docs)

#include <libxml/parser.h>

Je ne reçois que lors de la compilation (avec gcc)

fatal error: libxml/parser.h: no such file or directory

Remarques: Sur une autre machine, avec une ancienne Suse 64 bits, où libxml2-dev se trouve exactement dans le même chemin et où aucun autre fichier vars d'environnement n'est défini par rapport à la nouvelle Debian, cela fonctionne parfaitement. Un problème est survenu lors de la migration d'un ordinateur à un autre en utilisant exactement les mêmes fichiers. Toutes autres bibliothèques -dev que j'ai juste besoin de travailler (avec leur #include <path> documenté) après la migration (elles étaient toutes installées avec apt-get), seul libxml2-dev n'est pas trouvé lors de la compilation.

Dois-je faire autre chose pour rendre libxml2-dev visible?

9
Foo Bar

Essayez de compiler avec une inclusion explicite où le fichier parser.h est, par exemple, comme ceci

g++ -I/usr/include/libxml2/


Les variables d'environnement suivantes peuvent également être utilisées pour la recherche de fichiers d'en-tête

CPATH
C_INCLUDE_PATH
CPLUS_INCLUDE_PATH
OBJC_INCLUDE_PATH

Plus d'informations ici

6
deimus

si vous l'avez installé: Sudo apt-get install libxml2-dev libxml2-doc allez dans /usr/include/libxml2 et copiez ou déplacez tout le contenu de ce dossier à un niveau inférieur: cp -R libxml/ ../ Après cela, pour moi, cela fonctionne.

8
Vlad

Vous devriez utiliser pkg-config pour passer des paramètres au compilateur. Comme ça

g++ `pkg-config --cflags libxml-2.0` example.c -o example.o

et à l'éditeur de liens:

g++ `pkg-config --libs libxml-2.0` example.o -o example
0
BЈовић