2013-02-15 9 views
10

Dobrze, oto, co próbowałem.Dwa cele, dwa pliki nagłówkowe o tej samej nazwie, jak używać każdego nagłówka dla właściwego celu?

Mam pliki nagłówkowe w dwóch oddzielnych katalogach IRL. Są nazywane tak samo, ale są w dwóch różnych miejscach.

Chcę dołączyć tylko odpowiedni plik nagłówkowy dla każdego celu. Powiedzmy dla łatwości wyjaśnienia, że ​​plik nagłówkowy nazywa się "Config.h".

Więc mam:

$ {PRODUCT_DIR} /Header1/Config.h

i

$ {PRODUCT_DIR} /Header2/Config.h

Pliki te pojawiają się w LHS z Xcode również w dwóch różnych grupach (Heade r1 i Header2, które wskazują foldery IRL).

Teraz wszystko, co muszę zrobić, to uczynić Xcode wybrać właściwy z prawego folderu dla każdego celu.

cel 1

i

Target2

Próbowałem dodać ścieżkę do User Header Search Paths dla każdego celu, ale jego wciąż wybiera niewłaściwy. Próbowałem też przełączać "Zawsze wyszukuj ścieżki użytkowników", co również nie ma żadnego efektu.

Moje pytanie brzmi: czy to dlatego, że znajdują się w katalogu projektu? A może dlatego, że są w Xcode w menedżerze plików na LHS, więc Xcode kopiuje je do folderu kompilacji?

Najdziwniejsze jest to, że wydaje się być wybór pliki nagłówkowe z folderu z nazwiskiem alfabetycznie ...

W poprzednich wersjach Xcode jestem pewien, że można wybrać, które nagłówki skopiować do kompilacji teczka.

W każdym razie ... czy ktoś wie, jak mogę to naprawić, aby móc wybrać odpowiedni plik nagłówkowy dla celu?

Wielkie dzięki.

+0

Nie jestem pewien, ale co z warunkowym importem? –

+0

To jest plan awaryjny. :) Ale doda obciążenie więcej kroków niż w ten sposób. Jestem pewien, że to powinno być możliwe. –

+0

1. Właściwie nie rozumiem, dlaczego masz problemy z "Ścieżkami wyszukiwania nagłówków". Spróbuj wykluczyć te nagłówki z projektu i nie używaj "**" rekursywnych ścieżek wyszukiwania. 2. Zwykle używam innego "include" z "ifdef else". Możesz więc dodać dowolną zmienną globalną do dowolnego celu i sprawdzić, co musisz uwzględnić (np. "Ifdef target1 #include" header1.h "else #include" header2.h "endif;). Tak więc zależy to od twoich wymagań. – Jlexyc

Odpowiedz

8

Problem miałem był 2-krotnie:

  1. Trzeba usunąć pliki nagłówkowe z projektu. Jeśli są w Xcode, w menedżerze plików, zostaną automatycznie włączone do projektu.

  2. Musisz użyć względnych ścieżek do folderów w "Ścieżkach wyszukiwania nagłówka użytkownika". Używałem ${PROJECT_DIR}/path/to/header/folder, która dawała właściwą ścieżkę, ale nie działała poprawnie.Zmiana wpisu na ./path/to/header/folder zamiast tego działała poprawnie.

+0

Co zrobić, jeśli nie mogę usunąć nagłówków z projektu, ponieważ buduję strukturę i są to nagłówki publiczne? –

0

Mam 4 cele w 1 Proyect i ponad 40 nagłówków najlepszym rozwiązaniem w Xcode 8 Myślę, że najlepszym rozwiązaniem jest zmienić następujący tag:

Always Search user Paths 

Aby tak wszystko było w porządku dla mnie: enter image description here

Powiązane problemy