web-dev-qa-db-fra.com

libxml/tree.h aucun fichier ou répertoire de ce type

Je reçois des erreurs suivantes.

libxml/tree.h aucun fichier ou répertoire de ce type

J'ai déjà ajouté libxml2.dylib à mon projet, mais j'ai ce genre de problème ..__ S'il vous plaît, aidez-moi.

98
Sagar R. Kothari

Suivez les instructions ici , sous "Configuration de votre fichier de projet".

Configuration de votre fichier de projet

Vous devez ajouter libxml2.dylib à votre projet (ne le mettez pas dans la section Frameworks). Sur le Mac, vous le trouverez à /usr/lib/libxml2.dylib et pour l'iPhone, vous aurez veux le /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk/usr/lib/libxml2.dylib version.

Puisque libxml2 est un .dylib (pas un .framework sympa de Nice), nous avons toujours avoir encore une chose à faire. Accédez aux paramètres de construction du projet (Projet-> Modifier les paramètres du projet-> Construire) et recherchez les "chemins de recherche" . Dans "Chemins de recherche d'en-tête", ajoutez le chemin suivant:

$(SDKROOT)/usr/include/libxml2

Voir aussi la réponse du PO .

213
Matt Ball

Ajout de libxml2 dans Xcode 4.3/5/6

Ajouter libxml2 est une grosse douleur dans le cul. Si vous voulez le faire, faites-le avant d'aller trop loin dans la construction de votre projet.


Vous devez l'ajouter de deux façons:

1. Paramètres cibles

Cliquez sur votre cible (pas votre projet) et sélectionnez Build Phases.

Cliquez sur le triangle de révélation intitulé Link Binary With Libraries. Cliquez sur le + pour ajouter une bibliothèque.

Faites défiler vers le bas de la liste et sélectionnez libxml2.dylib. Cela ajoute la bibliothèque libxml2 à votre projet.

2. Paramètres du projet

Vous devez maintenant indiquer à votre projet où le rechercher trois plus de fois.

Sélectionnez le Build Settings tab.

Faites défiler jusqu'à la section Linking . Sous les colonnes de votre projet, double-cliquez sur la ligne Other Linker Flags . Cliquez sur le + et ajoutez -lxml2 à la liste.

Toujours plus.

Dans le même onglet, faites défiler jusqu'à la section Search Paths.

Dans la colonne projets de la rangée Framework Search Paths, ajoutez /usr/lib/libxml2.dylib.

Dans la ligne Header Search Paths et / User Header Search Paths, ajoutez $(SDKROOT)/usr/include/libxml2.

Dans ces deux derniers cas, assurez-vous que ce chemin est entré dans Debug et Release.

3. Propre

Dans le menu Product, sélectionnez Clean.

Ensuite, si j'étais vous (et je le suis probablement), je quitterais Xcode et je partirais. Quand vous revenez et lancez, vous devriez être prêt à partir.

86
e.w. parris

Pour Xcode 6, je devais faire ce qui suit:

1) ajoutez la bibliothèque "libxml2.dylib" à la cible de mon projet (phases de construction -> lien binaire avec des bibliothèques)

2) ajoutez "$ (SDKROOT)/usr/include/libxml2" aux chemins de recherche d'en-tête sur la cible (Paramètres de construction -> Chemins de recherche d'en-tête)

Après cela, la cible doit être construite avec succès.

22
Andy Shephard

Vous devez également ajouter /usr/include/libxml2 à votre chemin d’inclusion.

19

Ray Wenderlich a publié un article sur l’utilisation de gdata qui résout ce problème. Fondamentalement, ces étapes simples:

Dans XCode, cliquez sur Projet\Modifier les paramètres du projet et vérifiez que «Toutes les configurations» est coché.

Recherchez le paramètre Search Paths\Header Search Paths et ajoutez/usr/include/libxml2 à la liste.

Enfin, recherchez la section Linking\Other Linker Flags et ajoutez -lxml2 à la liste.

message original: lire et écrire des documents XML avec gdataxml

11
bennythemink

Former le lien de @Matt Ball,

J'ai trouvé la suite utile pour moi.

Vous devez ajouter libxml2.dylib à votre projet (ne le mettez pas dans la section Frameworks). Sur le Mac, vous le trouverez à /usr/lib/libxml2.dylib et pour l'iPhone, vous souhaiterez la version /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.0.sdk/usr/lib/libxml2.dylib.

Puisque libxml2 est un .dylib (pas un .framework sympa de Nice), nous avons encore une chose à faire. Accédez aux paramètres de construction du projet (Project->Edit Project Settings->Build) et recherchez le "Search Paths". Dans "Chemins de recherche d'en-tête", ajoutez le chemin suivant sur le Mac:

 /usr/include/libxml2 
11
Sagar R. Kothari

J'ai trouvé la même chose, j'ai dû ajouter $ (SDKROOT)/usr/include/libxml2 pour le dernier Xcode (4.3.x). AUSSI, ce qui m'a fait tourner autour pendant des heures, c'est le fait que je modifiais "TARGET" et non "PROJECT" (la nouvelle interface utilisateur de Xcode est si complexe qu'il est facile de l'ignorer). Vous devez modifier le projet!

7
Mike

Une autre solution. effectuez toutes les étapes dans le chemin de recherche en-tête, etc. et assurez-vous que la configuration que vous avez sélectionnée dans Projet dans Paramètres du projet est la bonne. Lorsque vous double-cliquez sur les paramètres de construction du projet, vous pouvez modifier les paramètres de distribution, mais vous essayez d’ajouter un chemin de recherche d’en-tête dans les paramètres "Débogage". Donc, assurez-vous que vous êtes dans les paramètres corrects. ou choisissez tous les paramètres 

5
S.P.

À partir de Mavericks (OS X 10.9), le répertoire/usr/include a disparu . Ici, la moitié des réponses sont obsolètes, car l'application ne sera pas compilée tant que vous n'avez pas trié le répertoire d'inclusion.

J'ai résolu le problème en créant un lien symbolique vers MacOSX SDK dans un terminal, à l'aide de la commande suivante:

Sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include /usr/include

L'application compile maintenant à nouveau.

4
Legoless

J'ai trouvé qu'avec xCode 4.3.2 je devais entrer $ (SDKROOT)/usr/include/libxml2 Dans le champ Recherche en-tête plutôt que simplement /usr/include/libxml2

4
fsharp

Sur Mountain Lion, je rencontrais le même problème, qui a été résolu en ajoutant /usr/include/libxml2 pour inclure les chemins avec l'indicateur "récursif", utilisez ceci si tout ce qui précède n'est pas fructueux.

3
Aqib Mumtaz

Je ne sais pas quelle est la différence, mais ajoutez le chemin d'inclusion au projet ainsi que la cible.

3
pschang

Veuillez suivre les étapes suivantes

  1. Ajout de libxml2
    libxml2.dylib peut être trouvé sur votre mac machin à /usr/lib/libxml2.dylib 

  2. Modifier les "chemins de recherche d'en-tête"
    Cliquez sur [Nom du projet] (dans le panneau de gauche) -> Projet -> Paramètres de construction -> Tout sélectionner (par défaut, de base).
    Tapez En-tête Chemins de recherche dans le champ de recherche.
    Double-cliquez sur les chemins de recherche d’en-tête -> + -> "$ (SDKROOT)/usr/include/libxml2" 

  3. Ajoutez -lxml2 à "Autre indicateur de l'éditeur de liens"
    Recherchez "Autres drapeaux de l'éditeur de liens" comme recherche à l'étape 2.
    cliquez sur la ligne "Autres drapeaux de l'éditeur de liens". Cliquez sur le "+" et ajoutez "-lxml2" à la liste.

  4. Définissez le type de votre projet sur ARC -> Non i.e Comptage automatique des références sur No Vous pouvez rechercher ARC conformément à l'étape 2.

2
mandar

Sélectionnez également "Toujours rechercher les chemins utilisateur" sur OUI. Dans XCode 4.3.3, sa valeur par défaut est NO.

2
Atif

J'ai eu ce problème lorsque j'ai rouvert un projet (développé sous XCode 3.something sur Leopard) après la mise à niveau vers Snow Leopard et XCode 3.2. Curieusement, cela n’affectait que certains types de builds (les builds de l’émulateur se passaient bien, ceux de périphérique me donnaient l’erreur). Et j'ai libxml2 dans/usr/include, et il contient effectivement libxml/tree.h.

Même la magie "Nettoyer" ne fonctionnait pas, mais "Vider les caches ..." du menu "XCode" (entre le logo Apple et le fichier) faisait l'affaire (le menu était-il dans les versions précédentes?). Cela m’explique mal, mais après un nettoyage, il n’ya plus eu de plaintes concernant libxml/tree.h

2
chesterbr

Xcode 4.5 J'ai entièrement utilisé la solution de CW. La seule exception est que $ (SDKROOT)/usr/include/libxml2 ne fonctionnait pas pour moi et que je devais ajouter "$ (SDK_DIR)"/usr/include/libxml2 à mes projets Chemins de recherche d'en-tête et Chemins de recherche d'en-tête d'utilisateur . Une fois le projet créé avec succès.

EDIT: J'ai un projet Google GData dans mon projet (appelé MyProject) (utilisé par mon projet). GData nécessite libxml. Pour construire le projet MyProject avec succès, j'ai ajouté "$ (SDK_DIR)"/usr/include/libxml2 dans les chemins de recherche d'en-tête de MyProject et non dans les chemins de recherche d'en-tête de GData . Si je ne l'ai pas ajouté à MyProject, le projet n'a pas construit ).

2
Petr

J'ai trouvé ce tutoriel visuel utile. 

2
Frank Fu

Blockquote Ajout de libxml2 dans Xcode 4.3.x

Ajouter libxml2 est une grosse douleur dans le cul. Si vous allez le faire, faites-le avant d'aller trop loin dans la construction de votre projet.

Voici comment.

Paramètres cibles

Cliquez sur votre cible (pas votre projet) et sélectionnez "Build Phases". Cliquez sur le triangle de révélation intitulé "Link Binary With Libraries". Cliquez sur le "+" pour ajouter une bibliothèque. Faites défiler la liste jusqu'en bas et sélectionnez "libxml2.dylib". Cela ajoute la bibliothèque libxml2 2 à votre projet… mais attendez.

Paramètres du projet

Vous devez maintenant indiquer à votre projet où le rechercher trois fois de plus.

Sélectionnez l'onglet "Paramètres de construction". Faites défiler jusqu'à la section "Liaison". Dans les colonnes de votre projet, double-cliquez sur la ligne "Autres indicateurs de l'éditeur de liens". Cliquez sur le "+" et ajoutez "-lxml2" à la liste.

Toujours plus.

Dans le même onglet, faites défiler jusqu'à la section "Chemins de recherche". Dans la colonne de votre projet, dans la ligne "Chemins de recherche dans le cadre", ajoutez "/usr/lib/libxml2.dylib".

Dans la ligne "Chemins de recherche d'en-tête" ET la ligne "Chemins de recherche d'utilisateur", ajoutez "$ (SDKROOT)/usr/include/libxml2". Dans ces deux derniers cas, assurez-vous que ce chemin est entré dans Debug AND Release.

Ensuite. Dans le menu "Produit", sélectionnez "Nettoyer".

Cela fonctionne et pour Xcode5 aussi! Je vous remercie!

1
Denko

@Aqib Mumtaz - Je l'ai obtenu en suivant les instructions de la note de Parris ci-dessus intitulée "Ajouter libxml2 dans Xcode 4.3/5/6". L'étape consistant à utiliser un chemin de recherche Framework ne fonctionne pas et le compilateur se plaint. Un grand bravo à ce gars quand même!

J'utilise Xcode 6.2b3

Quelle que soit la version de Xcode que vous utilisez, elle pose des problèmes. Ne présumez pas toujours que les erreurs de compilation sont réelles. Il y a de nombreuses fois où il ne suit pas les chemins de recherche d'en-tête et inclut clairement énumérés ne sont pas trouvés. Pire encore, les erreurs qui en résultent ont tendance à vous orienter dans des directions différentes, ce qui vous fait perdre beaucoup de temps à fouiner avec des distractions. Ceci étant dit...

Recommencez petit à petit en commençant par cela exactement ...:

  1. créer un projet Mac OS X Cocoa à fenêtre unique appelé "Bench Test"
  2. ajoutez XpathQuery dans le répertoire source de votre projet directement dans le Finder 
  3. cliquez sur la petite icône de dossier située sous le bouton rouge de la fenêtre du projet
  4. faites glisser XpathQuery (dossier si vous l'avez contenu) dans les actifs du projet à gauche de l'affichage de la fenêtre du projet
  5. glissez/Applications/Xcode/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/lib/libxml2.2.dylib dans les éléments d'actif de votre projet, en bas. Cela l'ajoutera à votre "Build Phases" -> "Link Binary With Libraries" facilement
  6. cliquez sur l'icône de projet "Bench Test" dans la colonne "actifs du projet", en haut à gauche
  7. rechercher "Autres drapeaux de l'éditeur de liens" sous "Configurer les paramètres"
  8. ajoutez "-lxml2" (sans "") à "Autres drapeaux de l'éditeur de liens" dans la colonne de l'icône de projet "Banc d'essai"
  9. rechercher "header search" sous "Build Settings"
  10. ajoutez "$ (SDKROOT)/usr/include/libxml2" (sans "") à "Chemins de recherche d'en-tête" dans la colonne de l'icône de projet "Test d'évaluation"
  11. ajouter "$ (SDKROOT)/usr/include/libxml2" (sans "") à "Chemins de recherche de l'en-tête de l'utilisateur" sous la colonne de l'icône "Test d'évaluation" du projet.

Remarques:

  • Le mien ne fonctionnerait pas tant que je n'aurais pas ajouté ce chemin de recherche à la fois aux "chemins de recherche d'en-tête" et aux "chemins de recherche d'en-tête d'utilisateur".
  • Pour accéder à libxml2.2.dylib dans le Finder, vous devez cliquer avec le bouton droit de la souris sur l’icône de votre Xcode et sélectionner "Afficher les contacts du paquet" (éditorial: quel bidouille .. en fourrant toute cette ordure dans l’application)
  • Préparez-vous à changer le libxml2.2.dylib lié. Le code inside Xcode est utilisé intentionnellement pour garantir que Xcode obtienne quelque chose qu’il connaît et qui a été testé en théorie. Vous voudrez peut-être utiliser le dylib dans le système ultérieurement (à lire dans ce fil)
  • Comme j'utilise Xcode 6.2b3, il se peut que ma libxml2.2.dylib soit plus récente. Le vôtre pourrait être nommé légèrement différent. Il suffit de rechercher dans le dossier quelque chose qui commence par "libxml" et se termine par ".dylib" et cela devrait être le cas. Il peut également y avoir un alias tel que "libxml2.dylib". Ne l'utilisez pas tout de suite car la résolution d'un alias ajoute une autre variable dans l'équation Xcode "Ce qui pourrait avoir des bugs".
  • Pour des raisons de sécurité, je crée des alias pour les bibliothèques externes, je les renomme pour indiquer lequel elles sont et je les garde au même niveau que le fichier de projet dans le Finder. S'ils changent d'emplacement, changent de nom, etc., l'alias aura dans son information Obtenir, le chemin complet du fichier d'origine pour un travail de détection ultérieur afin que le projet soit compilé et lié à nouveau. (Les liens symboliques se cassent trop facilement et ne sont pas naturels pour le Mac)
  • Dernière chose, et très importante, voir http://www.cocoawithlove.com/2008/10/using-libxml2-for-parsing-and-xpath.html où vous pouvez télécharger XpathQuery et obtenir encore plus de bonté.

j'espère que cela t'aides. 

Si vous développez quelque chose pour des vétérans, par exemple un iPhone/iPad ou une application Mac, et travaillez contre quelque chose appelé "MDWS" ou "VIA" qui sont des interfaces SOAP basées sur le système de dossiers médicaux ... Merci de bien vouloir me contacter

1
William Cerniuk

Ne mettez pas libxml2.dylib dans le dossier frameworks, mais placez-le sous la racine juste en dessous de la racine (icône bleue en haut à gauche)

Cliquez ensuite sur le projet (icône bleue en haut à gauche), GO dans les paramètres de construction, dans le champ de recherche, tapez "Chemins de recherche en-tête" puis ajoutez le "$ (SDKROOT)/usr/include/libxml2"

Ce code résoud mon problème, j'espère qu'il vous aidera à résoudre ce problème

1
Ranjan

je me suis dit que j'avais mal ajouté, alors je me rends compte que le problème est qu'il ne supporte pas l'arc, vérifiez donc le support, life saver -> http://www.michaelbabiy.com/arc-compliant-gdataxml-library/

0
Bhimbim

J'ai résolu en trois étapes inXcode 8.0 + Projet de test unitaire

1) J'ai ajouté le fichier libxml à la phase de construction. Suivez ce lien link

2) J'ai ajouté Other Linker Flags en tant que -ObjC (pour les cibles de projet et de projet de test)

3) J'ai configuré le chemin de recherche en-tête en tant que "${SDKROOT}/usr/include/libxml2" (n'oubliez pas les guillemets dans les deux côtés) (pour les cibles de projet et de projet de test)

L'un d'eux va résoudre le problème. Sinon, vous devez appliquer les trois éléments ci-dessus. 

0
Zumry Mohamed