Comment définir le chemin d’inclusion dans un projet xcode

J’essaie d’utiliser une bibliothèque C dans un projet Objective-C Xcode.

La structure du répertoire des bibliothèques est la suivante:

-- include/ |-- config.h |-- lib/ | |-- file1.h | |-- file2.h | |-- file3.h 

Les documents de la bibliothèque indiquent d’inclure file1.h, et file1.h inclut file2.h et file3.h.

Je reçois des erreurs “fichier introuvable” pour les inclusions de fichier2.h et fichier3.h`. Ils sont inclus par fichier1.h de la manière suivante:

 #include  #include  

J’ai lu ici que ces crochets indiquent au préprocesseur de rechercher des fichiers d’inclusion le long du chemin spécifié par la variable d’environnement INCLUDE, par opposition à la recherche dans le même répertoire que le fichier contenant le #include.

J’ai donc ajouté la variable d’environnement INCLUDE dans Xcode en allant dans Product-> Edit Scheme .. et la définir sur /the-whole-path-to/include/ cependant, le fichier ne /the-whole-path-to/include/ toujours pas d’erreurs.

Les fichiers sont inclus avec succès si je change fichier1.h pour les inclure comme ceci:

 #include "file2.h" 

mais je préfère ne pas le faire pour chaque fichier de la bibliothèque.

Comment puis-je réparer cela?

Dans la version 5.0.2 de XCode, le meilleur moyen d’y parvenir est probablement de l’append au volet “Chemins de recherche” de la cible. La localisation était (pour moi) incroyablement peu intuitive. Voici comment je l’ai eu, pour ceux aussi confus que moi:

Dans la colonne de gauche, cliquez sur l’icône du navigateur de projet (qui ressemble à un dossier). Cliquez ensuite sur l’entrée du projet. Cela devrait montrer un tas de parameters dans le volet principal. En haut de ce volet, cliquez sur “Paramètres de construction. Cela montre un tas d’entrées … y compris celle appelée Chemins de recherche … mais vous ne pouvez pas append de chemin de recherche ici! Cela m’a fait grincer des dents pour un bon while, jusqu’à ce que je réalise que le nom du projet en haut de ce volet était un menu déroulant, choisissez la cible à partir de ce menu déroulant et vous devriez maintenant pouvoir double-cliquer sur “Chemins de recherche d’en-tête” et effectuer la modification nécessaire.

Oh, la joie des interfaces graphiques folles.

Deviner.

Tout ce que vous avez à faire est d’append le drapeau -I à votre configuration sous “Autres indicateurs C”

Donc, dans les parameters de construction de votre cible, recherchez “Other C Flags” et ajoutez -I/path-to-include/

Voici une copie d’écran: entrer la description de l'image ici

J’ai résolu ce problème dans Xcode 5.0.1 en utilisant les parameters de construction du projet (comme John et Ian l’ont noté ci-dessus, mais je ne peux pas commenter en raison de <50 rep).

Nouvelles infos:

Lorsque vous ajoutez des éléments à des chemins de recherche d’en-tête d’ utilisateur, vous devez également modifier les chemins d’access utilisateur de recherche permanente sur Oui.

Lorsque vous ajoutez des éléments à des chemins de recherche d’en-tête (non utilisateur), l’option Rechercher toujours les chemins d’access utilisateur n’est pas requirejse.

Bien que cela fonctionne, il est probablement préférable de le placer sous l’onglet “Chemins de recherche”.

Essaye ça:

1 – sélectionnez votre fichier de projet dans le volet Xcode de gauche
2 – assurez-vous que votre projet est sélectionné dans le volet Xcode du milieu
3 – sélectionnez “Paramètres de construction” en haut du volet Xcode du milieu
4 – assurez-vous que “All” et “Combined” sont sélectionnés juste sous “Build Settings”
En-tête de type 5 dans le champ de recherche juste en dessous de “Paramètres de construction”

Vous devriez voir les champs de chemin de recherche prêts à être édités dans le volet central.

Soit vous pouvez utiliser “Other C Flags” ou utiliser “HEADER_SEARCH_PATHS”, pour spécifier les chemins d’inclusion, pour rechercher l’en-tête de votre exécutable.