2009-04-14 8 views
17

Je voudrais ajouter ~/include à mon chemin d'inclusion pour tous les projets en utilisant Xcode, quelque chose comme la configuration de la variable d'environnement CPLUS_INCLUDE_PATH sous Linux. (Voir here pour la question Linux correspondante.)Comment ajouter un chemin d'inclusion global pour xcode

Est-ce possible dans Xcode? J'ai essayé de définir la variable d'environnement ci-dessus, mais cela ne semble pas fonctionner. (Et si cela est possible, j'aimerais également définir des chemins associés, tels que LIBRARY_PATH et LD_LIBRARY_PATH.)

Répondre

14

Selon Apple's Docs, vous êtes en mesure pour fournir un paramètre par défaut pour tout paramètre de construction utilisant un environment variable. Dans ce cas, vous devez définir HEADER_SEARCH_PATHS. Pour une raison que je ne comprends pas, cela ne fonctionne pas. Cela fonctionne correctement pour les autres paramètres de construction (par exemple, OTHER_CFLAGS), mais pas pour HEADER_SEARCH_PATHS. Vous pouvez voir le nom de la variable pour n'importe quel paramètre en ouvrant l'assistant de recherche dans la fenêtre de configuration (bouton book en bas à gauche). mais ne fonctionne que pour les chemins entre guillemets doubles (pas entre crochets.)

Alors

#include "bar.h" 

fonctionnerait, mais

#include <bar.h> 

ne le ferait pas.

Les paramètres de construction plist référencé à partir de l'article ci-dessus sur les variables d'environnement devraient finir par quelque chose comme ceci:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>USER_HEADER_SEARCH_PATHS</key> 
    <string>~/test</string> 
</dict> 
</plist> 

espoir qui aide.

0

Ajoutez le paramètre de construction HEADER_SEARCH_PATHS à votre projet Xcode. Ce paramètre prend une liste de chemins séparés par des espaces et si le chemin se termine par une étoile double (**), il recherche les sous-répertoires de manière récursive. Donc, pour répondre à votre exemple, définissez HEADER_SEARCH_PATHS à:

~/include 

Si vous aviez un certain nombre de chemins d'inclure, vous définiriez à quelque chose comme:

~/include ~/my_other_includes/** /usr/local/special_frameworks/** 
+0

Je veux un * paramètre global de *, de sorte que je n'ai pas ajouter le même chemin pour chaque projet Xcode. –

+1

Ok, vous n'avez pas dit cela à l'origine. Comme l'a dit Jesse, vous pouvez également définir des paramètres de construction dans votre environnement et je suppose que cela fonctionne pour vous. –

-3

Les paramètres de construction ne sont pas des variables d'environnement et les variables d'environnement ne sont pas des paramètres de construction. La définition d'une variable d'environnement n'affecte pas les générations Xcode.

USER_HEADER_SEARCH_PATHS est un paramètre de construction, et en y mettant une liste de chemins, vous obtiendrez ce que vous voulez. Si vous définissez la valeur dans l'inspecteur d'une cible, elle ne prendra effet que pour cette cible (et uniquement pour les configurations de construction que vous désignez). Si vous le définissez dans l'inspecteur de projet, il prendra effet dans toutes les cibles du projet, à moins qu'une cible ne le remplace par son propre paramètre.

Pour les chemins spécifiques à votre machine, vous devez probablement définir une arborescence source dans les préférences Xcode, par exemple LOCAL_INCLUDE = ~/include. Puis définissez USER_HEADER_SEARCH_PATHS = $(LOCAL_INCLUDE) dans le projet. De cette façon, d'autres personnes peuvent ouvrir votre projet et le créer en définissant leur arborescence source sur l'emplacement particulier des inclusions locales sur leur machine, sans avoir à modifier le fichier de projet.

+1

La définition des variables d'environnement * affecte * les paramètres de construction. Cela est clairement indiqué dans les documents d'Apple, et cela fonctionne. –

+1

Votre affirmation n'est pas conforme à l'usage pratique. -1 pour deviner. – ptoinson

0

Il suffit de sélectionner un fichier .c ou .m dans vos « Groupes & Onglet Fichiers » et choisissez « Obtenir des informations » par RMB, puis sous « construire », vous pouvez ajouter des indicateurs de compilateur supplémentaires comme -I supplémentaires comprennent searchpath.

1

Pour tout vous chéris bénis qui tentent d'atteindre cela, ou tout autre hack ~/.MacOSX/environment.plist, alias variables environnementales globales dans ce monde post-Montagne-Lion, consultez EnvPane - An OS X preference pane for environment variables

EnvPane est un volet de préférences pour Mac OS X 10.8 (Mountain Lion) qui vous permet de définir des variables d'environnement pour tous les programmes dans les sessions graphiques et terminales. Non seulement il restaure le support de ~/.MacOSX/environment.plist dans Mountain Lion, il publie aussi vos changements dans l'environnement immédiatement, sans avoir besoin de se déconnecter et de revenir en arrière. Cela fonctionne même pour les modifications faites en éditant manuellement ~/.MacOSX/environment.plist, pas seulement les modifications effectuées via le panneau de préférences.

enter image description here

Questions connexes