web-dev-qa-db-fra.com

Pourquoi ai-je le message d'erreur "Fichier libxml/tree.h introuvable"?

Je viens d'installer Xcode version 4.3.1 et j'obtiens cette erreur: 

fichier libxml/tree.h introuvable

J'ai également installé Xcode 4.2 et avec le même projet, je reçois la même erreur.

J'ai configuré les chemins de recherche header avec /usr/include/libxml2
J'ai aussi essayé $(SDKROOT) / usr/include/libxml2 et cela n'a pas fonctionné.

J'ai aussi mis Other Linker Flag avec lxml2

43
Sergio Rodríguez

Incluez les éléments suivants dans le chemin de recherche de votre en-tête et vous devriez être à l'abri de toute étrangeté que fait Apple avec leurs mises à jour Xcode:

$(SDKROOT)/usr/include/libxml2
98
jmstone617

Dans votre question, vous avez un espace entre le / et le usr. Peut-être que c'est une faute de frappe, mais le chemin est:

/usr/include/libxml2

Il suffit de confirmer que le chemin est défini dans les paramètres de construction cibles:

Target build settings

Vous pouvez également vérifier que le chemin existe sur votre système de fichiers.

27
FluffulousChimp

Bibliothèque LibXML2 résolue

SOLUTION!

si vous avez xcode 4.3.x dans/Application

besoin UNIQUEMENT d’ajouter: "/ usr/include/libxml2" sans les guillemets dans Application TARGET -> Chemin de recherche des en-têtes.

pour cela -> double-cliquez sur la ligne -> sur la petite fenêtre, cliquez sur le signe plus et écrivez/usr/include/libxml2

nb - need ajoute également libxml2.dylib au framework. J'utilise 2.2.7.3

j'espère vous aider

19
sundsx

Dans la section 4.3.1, vous devez inclure les chemins de recherche d'en-tête dans les cibles ainsi que dans le projet. Je ne sais pas s'il s'agissait d'un problème avec le passage de la version 4.2 à la version 4.3.1, mais je viens de mettre à jour Lion et j'ai rencontré le même problème.

7
Russ Newcomer

J'ai résolu le problème en définissant le chemin de recherche d'en-tête sur:

${SDK_DIR}/usr/include/libxml2

et Toujours rechercher les chemins utilisateur sur NO (ce qui est fortement suggéré de toute façon) .__ Ceci uniquement dans la cible.

7
Giulio

Je me suis heurté de nouveau à cela aujourd'hui, je vous recommanderais d'envelopper le chemin entre guillemets: 

"$(SDKROOT)/usr/include/libxml2"

J'ai perdu une demi-heure à cause de la présence d'espaces sur mon chemin. 

4
Chris

Le chemin correct est (pour 'Chemin de recherche d'en-tête'):

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/usr/include/libxml2/*

3
ingaham

Xcode 6: 

Faites ce qui suit:

1.0) Sélectionnez "mainApp" Target: Allez dans les paramètres -> Dans "Chemin de recherche en-tête"

1.1) Ajoutez ceci: /Applications/Xcode.app/Contenu/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/libxml2.

2.0) Sélectionnez la cible "TestApp": Accédez aux paramètres -> Dans "Chemin de recherche de l'en-tête"

2.1) Ajoutez ceci: /Applications/Xcode.app/Contenu/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/libxml2.

3
ArunDhwaj IIITH

J'ai le même problème.

J'essaie de définir le chemin ('Chemin de recherche en-tête') sur /usr/include/libxml2, erreur de construction!

J'essaie de définir le chemin ('Chemin de recherche en-tête') sur $(SDKROOT)/usr/include/libxml2, une erreur de construction!

mais je mets le chemin vers 

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/usr/include/libxml2

construire réussi!

2
jasonhao

2 solutions:

  1. le chemin de recherche d'en-tête doit être mis à jour avec la racine du SDK en tant que telle: $(SDKROOT)/usr/include/libxml2
  2. Installez les outils de ligne de commande pour XCode 5 à partir du terminal en entrant: xcode-select --install XCode 4 devrait avoir l'option d'installation des outils de ligne de commande dans la section préférences> téléchargements.

Personnellement, j'irais avec le second.

2
Feras Arabiat

Dans mon cas, la principale difficulté était que l'application était composée de deux projets, le second ayant plusieurs objectifs. Il m'a fallu un certain temps pour comprendre que l'erreur se produisait dans l'une de ces cibles et non dans la cible du projet principal. Ensuite, je devais simplement ajouter la (en) célèbre $(SDKROOT)/usr/include/libxml2 dans les chemins de recherche d'en-tête de cette cible particulière.

J'utilise Xcode Version 5.0.1

0
AlvaroSantisteban

Je devais configurer le other Linker Flags comme ceci: Pour Debug et Release faire Add Build Settings (coin inférieur droit) et Add Conditional Settings. Ensuite, sélectionnez Any iOS Simulator SDK et insérez le paramètre -lxml2.

0
Tobias

J'ai déjà eu le chemin de recherche en-tête et le travail de cadre, mais obtenais cette erreur. Quitter avec force xcode puis le redémarrer a fonctionné pour moi (j'utilisais xcode 7.2)

0
Fayza Nawaz

Dans debug/release, ajoutez le chemin de recherche à Toute architecture | N'importe quel SDK C’est cliquer sur le bouton + près du débogage et ajouter $ {SDKROOT}/usr/include/libxml2 Faites de même pour la version ci-dessus également

0
Aravind A R