2009-05-27 5 views
2

getrennt ich meine Header-Dateien in Ordnern wie:bewahren umfassen Pfad in Xcode

libraryA 
    |-libA1.h 
    |-libA2.h 

libraryB 
    |-libB1.h 
    |-libB2.h 

Xcode jedoch entfernt den Pfad standardmäßig so

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

funktioniert nicht, nur:

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

Wie kann ich sicherstellen, dass xcode die Pfadnamen für Includes beibehält?

Antwort

4

Setzen Sie im Erstellungsbereich für das Ziel Header-Suchpfade auf $ (SRCROOT) (vorausgesetzt, diese befinden sich auf der obersten Ebene) oder $ (SRCROOT)/include oder was auch immer übereinstimmt. Ich schlage nur die Verwendung des Build-Bereichs hier aus Gründen der Einfachheit vor. Ich tatsächlich recommend, dass Menschen den Build-Bereich verlassen und xcconfig-Dateien verwenden, in diesem Fall ist die Einstellung HEADER_SEARCH_PATHS.

+0

@Rob: Also, wenn HEADER_SEARCH_PATHS nicht gesetzt ist, werden alle Pfade entfernt, aber wenn es einen Wert hat, dann sind die Pfade beibehalten d? – lajos

+0

Nein. Standardmäßig suchen Sie nach Dateien, die direkt zu Ihrem Projekt hinzugefügt wurden. Dann sieht es in HEADER_SEARCH_PATHS nach. Wenn HEADER_SEARCH_PATHS $ (SRCROOT) ist, was zu/Users/rob/MyCoolProject erweitert werden kann, wird nach libraryA/libA1.h in /Users/rob/MyCoolProject/libraryA/libA1.h gesucht, nachdem direkt in den hinzugefügten Dateien gesucht wurde Projekt. (Keine Datei im Projekt wird jedoch den Namen "libraryA/libA1.h" haben. Der Name der Datei lautet "libA1.h".) –

0

Die Gruppen in der Xcode-Dateiliste entsprechen nicht unbedingt den Ordnern auf der Festplatte. Wenn Sie wirklich möchten, dass sie so funktionieren, müssen Sie Ordner in Ihrer Quellstruktur erstellen, Ihre Header dorthin verschieben, dann Informationen über Ihre Dateigruppen in Xcode abrufen und sie auf die neuen Ordner verweisen.

+0

Ich habe die .h-Dateien in separaten Ordnern, nicht nur separate Gruppen. – lajos