2009-05-27 6 views
2

Je choisis mes fichiers d'en-tête dans des dossiers tels que:préserver include_path dans Xcode

libraryA 
    |-libA1.h 
    |-libA2.h 

libraryB 
    |-libB1.h 
    |-libB2.h 

Xcode supprime cependant le chemin par défaut,

#include "libraryA/libA1.h" 
#include "libraryB/libB1.h" 

ne fonctionne pas, seulement:

#include "libA1.h" 
#include "libB1.h" 

Comment puis-je faire en sorte que xcode conserve les noms de chemin pour les inclusions?

Répondre

4

Dans le volet de construction de la cible, définissez les chemins de recherche d'en-tête sur $ (SRCROOT) (en supposant qu'ils sont au niveau supérieur), ou $ (SRCROOT)/include ou toute autre correspondance. Je suggère seulement d'utiliser le volet de construction ici par souci de simplicité. En fait, je recommend que les gens abandonnent le volet de construction et utilisent les fichiers xcconfig, auquel cas le paramètre est HEADER_SEARCH_PATHS.

+0

@Rob: Donc, fondamentalement, si HEADER_SEARCH_PATHS n'est pas défini, tous les chemins sont supprimés, mais s'il a une valeur, les chemins sont conservés d? – lajos

+0

Non. La valeur par défaut est de rechercher des fichiers directement ajoutés à votre projet. Ensuite, il regarde dans HEADER_SEARCH_PATHS. Si HEADER_SEARCH_PATHS est $ (SRCROOT), ce qui pourrait s'étendre à/Users/rob/MyCoolProject, alors il cherchera libraryA/libA1.h dans /Users/rob/MyCoolProject/libraryA/libA1.h après avoir regardé directement dans les fichiers ajoutés au projet. (Mais aucun fichier dans le projet n'aura le nom "libraryA/libA1.h" .Le nom du fichier est "libA1.h".) –

0

Les groupes de la liste de fichiers de Xcode ne correspondent pas nécessairement aux dossiers sur le disque. Si vous voulez vraiment qu'ils fonctionnent de cette façon, vous devez créer des dossiers dans votre arborescence source, y déplacer vos en-têtes, puis obtenir des informations sur vos groupes de fichiers dans Xcode et les pointer vers les nouveaux dossiers.

+0

J'ai les fichiers .h dans des dossiers séparés, pas seulement des groupes séparés. – lajos