2013-08-02 2 views
22

często widzę otwarty kod źródłowy importowanie zewnętrznych bibliotek w plikach wdrożeniowych Xcode/Objective-C tak:Jak poinformować Xcode, jak dołączyć bibliotekę określoną za pomocą nawiasów trójkątnych?

#import <ThirdPartyLibrary/utilities.h> 

ale kiedy przeciągnij & upuść strukturę plików i plików takiej biblioteki w moim projekcie, wszystkie te importowane pliki są uszkodzone, a Xcode nie wie, gdzie znajdują się pliki.

skończę ręcznie modyfikując każdy import wyglądać:

#import "utilities.h" 

I to wydaje się, że jest w stosunku do bieżącego folderu fizycznego w systemie plików. Gdy biblioteka podzieli swoje pliki w folderach w systemie plików i przeciągnę go w Xcode, Xcode utworzy grupy dla folderów. Ale w przypadku importu muszę podać nazwę folderu. Problemem jest to, kiedy jestem w folderze, na przykład:

http/httpTools.h

Wtedy kiedy httpTools.h chce importować utilities.h z cebulkami, muszę zmienić

#import <ThirdPartyLibrary/utilities.h> 

do

#import "../utilities.h" 

co jest obowiązkiem. Po zrobieniu tego przez 5 godzin pomyślałem, cholera, musi być lepszy sposób. Czy ktoś może wyjaśnić, co jest sekretem nauczania Xcode nowej lokalizacji ramy, które mogą być importowane z nawiasami ostrymi? Framework btw jest kodem źródłowym. Nie skompilowany. Tylko goły kod.

+2

To nie Xcode, to raczej kompilator. W każdym razie, musisz rozszerzyć ścieżkę wyszukiwania pliku nagłówkowego kompilatora; można to zrobić, podając flagę kompilatora '-I w przypadku GCC i Clang. –

+0

Miałem podobny problem, zamiast przeciągać pliki, uwzględniłem odpowiednie katalogi w ustawieniach xcode ścieżek wyszukiwania nagłówków. –

+0

Czy importujesz framework strony trzeciej lub pełny kod źródłowy? – Wain

Odpowiedz

11

Podaj ścieżkę dołączania, używając flagi kompilatora -I lub aliasu ustawień kompilacji Xcode HEADER_SEARCH_PATHS. Oczywiście możesz używać zmiennych kompilacji, gdy to robisz.

+3

nie działa w moim przypadku. Wygląda na to, że xcode wyszukuje tylko z biblioteki systemowej nagłówki określone w nawiasach. – zell

+0

Nie można po prostu dodać 'include'. Zamiast tego użyj '$ (SRCROOT)/include /'. – Jeff

+0

HEADER_SEARCH_PATHS nie działa dla mnie z nieznanego powodu. Dodanie -I jako flagi kompilatora działało jednak. –

5

Właśnie natknęliśmy się na tym samym numerze, w Xcode istnieją dwa rodzaje ścieżek wyszukiwania:

Header Search Paths 
User Header Search Paths 

Jeśli dodać własne foldery należą do nagłówka ścieżek wyszukiwania, można użyć nawiasów kątowych.

Powiązane problemy