Otrzymuję następujące błędy.
libxml / tree.h nie ma takiego pliku lub katalogu
Dodałem już libxml2.dylib
do mojego projektu, ale mam tego typu problemy. Proszę pomóż mi.
objective-c
iphone
xcode
libxml2
Sagar R. Kothari
źródło
źródło
Odpowiedzi:
Postępuj zgodnie ze wskazówkami tutaj , pod „Konfigurowanie pliku projektu.”
Zobacz także odpowiedź OP .
źródło
/usr/include
. Nie próbowałem instalować libxml2, więc nie mogę potwierdzić domyślnego zachowania. Ale tak, znacznie lepiej jest połączyć to w ten sposób.Dodanie libxml2 w Xcode 4.3 / 5/6
Dodanie libxml2 to duży, gruby, wybredny ból w dupie. Jeśli masz zamiar to zrobić, zrób to, zanim zajdziesz za daleko w budowaniu swojego projektu.
Musisz go dodać na dwa sposoby :
1. Ustawienia docelowe
Kliknij swój cel (nie projekt) i wybierz
Build Phases
.Kliknij trójkąt odkrywający zatytułowany
Link Binary With Libraries
. Kliknij,+
aby dodać bibliotekę.Przewiń na dół listy i wybierz
libxml2.dylib
. To dodaje bibliotekę libxml2 do twojego projektu.2. Ustawienia projektu
Teraz musisz jeszcze trzy razy powiedzieć swojemu projektowi, gdzie go szukać .
Wybierz plik
Build Settings tab
.Przewiń w dół do
Linking
sekcji. Pod kolumnami projektów kliknij dwukrotnieOther Linker Flags
wiersz. Kliknij+
i dodaj-lxml2
do listy.Wciąż więcej.
Na tej samej karcie przewiń w dół do
Search Paths
sekcji.Pod kolumną projektów w
Framework Search Paths
wierszu dodaj/usr/lib/libxml2.dylib
.W
Header Search Paths
i naUser Header Search Paths
Dodaj wiersz$(SDKROOT)/usr/include/libxml2
.W tych dwóch ostatnich przypadkach upewnij się, że ścieżka jest wprowadzona w debugowaniu i wydaniu.
3. Wyczyść
W
Product
menu wybierzClean
.Wtedy, gdybym był tobą (i spójrzmy prawdzie w oczy, prawdopodobnie jestem) rzuciłbym Xcode i odszedł. Kiedy wrócisz i uruchomisz, powinieneś być gotowy.
źródło
opening import file 'Swift.swift': Not a directory
po zrobieniu tego w Xcode 5.W przypadku Xcode 6 musiałem wykonać następujące czynności:
1) dodaj bibliotekę „libxml2.dylib” do CELU mojego projektu (Fazy kompilacji -> Połącz plik binarny z bibliotekami)
2) dodaj „$ (SDKROOT) / usr / include / libxml2” do ścieżek wyszukiwania nagłówków w TARGET (Ustawienia kompilacji -> Ścieżki wyszukiwania nagłówków)
Następnie cel powinien pomyślnie się zbudować.
źródło
Musisz również dodać
/usr/include/libxml2
do swojej ścieżki dołączania.źródło
Utwórz link @Matt Ball,
Zauważyłem, że poniższe wskazówki są dla mnie pomocne.
Musisz dodać libxml2.dylib do swojego projektu (nie umieszczaj go w sekcji Frameworks). Na Macu znajdziesz go na
/usr/lib/libxml2.dylib
iPhonie, a będziesz chciał mieć/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.0.sdk/usr/lib/libxml2.dylib
wersję.Ponieważ libxml2 jest .dylib (nie jest przyjaznym, przyjaznym .frameworkem), wciąż mamy jeszcze jedną rzecz do zrobienia. Przejdź do ustawień kompilacji projektu (
Project->Edit Project Settings->Build
) i znajdź „Search Paths
”. W polu „Ścieżki wyszukiwania nagłówków” dodaj następującą ścieżkę na komputerze Mac:źródło
Ray Wenderlich opublikował post na blogu o używaniu gdata, który rozwiązuje ten problem. Zasadniczo te proste kroki:
W XCode kliknij Project \ Edit Project Settings i upewnij się, że zaznaczone są „All Configurations”.
Znajdź ustawienie Search Paths \ Header Search Paths i dodaj / usr / include / libxml2 do listy.
Na koniec znajdź sekcję Linking \ Other Linker Flags i dodaj -lxml2 do listy.
oryginalny post: czytaj i pisz dokumenty xml za pomocą gdataxml
źródło
Znalazłem to samo, musiałem dodać $ (SDKROOT) / usr / include / libxml2 dla najnowszego Xcode (4.3.x). TAKŻE to, co sprawiło, że krążyłem w kółko godzinami, to fakt, że modyfikowałem „TARGET”, a nie „PROJEKT” (nowy interfejs użytkownika Xcode jest tak zawiły, że łatwo go przeoczyć). Musisz zmodyfikować PROJEKT!
źródło
Inne rozwiązanie. wykonaj wszystkie kroki w ścieżce wyszukiwania nagłówka itp. i upewnij się, że wybrana konfiguracja w projekcie w ustawieniach projektu jest poprawna. Po dwukrotnym kliknięciu ustawień kompilacji projektu możesz zmieniać ustawienia dystrybucji, ale próbujesz dodać ścieżkę wyszukiwania nagłówka w ustawieniach „Debuguj”. Więc upewnij się, że masz prawidłowe ustawienia. lub wybierz wszystkie ustawienia
źródło
Zauważyłem, że z xCode 4.3.2 musiałem wpisać $ (SDKROOT) / usr / include / libxml2 w polu wyszukiwania nagłówka zamiast po prostu / usr / include / libxml2
źródło
W Mavericks (OS X 10.9) katalog / usr / include zniknął . Połowa odpowiedzi jest nieaktualna, ponieważ aplikacja nie będzie się kompilować, dopóki nie uporządkujesz katalogu dołączania.
Rozwiązałem problem tworząc dowiązanie symboliczne do MacOSX SDK w terminalu, używając następującego polecenia:
Aplikacja jest teraz ponownie kompilowana.
źródło
Nie jestem pewien, na czym polega różnica, ale dodaj ścieżkę dołączania do projektu, a także cel.
źródło
W Mountain Lion miałem ten sam problem, który został rozwiązany poprzez dodanie
/usr/include/libxml2
do uwzględnienia ścieżek z flagą „rekurencyjna”, użyj tego, jeśli wszystko powyżej nie jest owocne.źródło
Miałem ten problem, kiedy ponownie otworzyłem projekt (który został opracowany w XCode 3. coś w systemie Leopard) po aktualizacji do Snow Leopard i XCode 3.2. Co ciekawe, wpłynęło to tylko na niektóre rodzaje kompilacji (kompilacje emulatorów poszły dobrze, w przypadku urządzeń wystąpił błąd). Mam bibliotekę libxml2 w / usr / include i rzeczywiście zawiera libxml / tree.h.
Nawet magiczne „Wyczyść” nie zadziałało, ale „Opróżnij pamięci podręczne…” w menu „XCode” (między logo Apple a plikiem) załatwiło sprawę (czy to menu było w poprzednich wersjach?). Nie wiem dlaczego, ale po wyczyszczeniu nie było więcej skarg dotyczących libxml / tree.h
źródło
Wybierz także „Zawsze wyszukuj ścieżki użytkownika” na TAK. W XCode 4.3.3 jest to domyślnie NIE
źródło
Wykonaj poniższe czynności
Dodanie libxml2
libxml2.dylib można znaleźć na komputerze Mac pod adresem /usr/lib/libxml2.dylib
Zmień "Ścieżki wyszukiwania nagłówków"
Kliknij [Nazwa projektu] (w lewym panelu) -> Projekt -> Ustawienia kompilacji -> Zaznacz wszystko (domyślnie jest to Podstawowe)
Wpisz Ścieżki wyszukiwania nagłówka w polu wyszukiwania
Kliknij dwukrotnie na Ścieżki wyszukiwania nagłówka -> + - > „$ (SDKROOT) / usr / include / libxml2”
Dodaj -lxml2 do „Innej flagi konsolidatora”
Wyszukaj „Inne flagi konsolidatora ” podczas wyszukiwania w kroku 2,
klikając wiersz „Inne flagi konsolidatora ”. Kliknij „+” i dodaj „-lxml2” do listy.
Zmień typ projektu na ARC -> Nie, tj. Automatyczne liczenie referencji na Nie Możesz przeszukać ARC zgodnie z krokiem 2
źródło
Xcode 4.5 Całkowicie wykorzystałem rozwiązanie CW. Jedynym wyjątkiem jest to, że $ (SDKROOT) / usr / include / libxml2 nie działało dla mnie i musiałem dodać „$ (SDK_DIR)” / usr / include / libxml2 do moich ścieżek wyszukiwania nagłówków projektów i ścieżek wyszukiwania nagłówków użytkowników . Po pomyślnym zbudowaniu projektu.
EDYCJA: Mam projekt Google GData w moim projekcie (o nazwie MyProject) (mój projekt używa). GData wymaga biblioteki libxml. Aby pomyślnie zbudować projekt MyProject, dodaję "$ (SDK_DIR)" / usr / include / libxml2 do Header Search Paths of MyProject i no do Header Search Paths of GData . Jeśli nie dodałem go do MyProject, projekt nie został skompilowany ).
źródło
Ten wizualny samouczek okazał się przydatny.
źródło
Dodanie libxml2 to duży, gruby, wybredny ból w dupie. Jeśli masz zamiar to zrobić, zrób to, zanim zajdziesz za daleko w budowaniu swojego projektu.
Oto jak.
Ustawienia docelowe
Kliknij swój cel (nie projekt) i wybierz „Fazy budowy”. Kliknij trójkąt odsłaniający zatytułowany „Połącz plik binarny z bibliotekami”. Kliknij „+”, aby dodać bibliotekę. Przewiń w dół listy i wybierz „libxml2.dylib”. To dodaje bibliotekę libxml2 2 do twojego projektu… ale czekaj.
Ustawienia projektu
Teraz musisz jeszcze trzy razy powiedzieć swojemu projektowi, gdzie go szukać.
Wybierz kartę „Ustawienia kompilacji”. Przewiń w dół do sekcji „Łączenie”. Pod kolumnami projektu kliknij dwukrotnie wiersz „Inne flagi łączące”. Kliknij „+” i dodaj „-lxml2” do listy.
Wciąż więcej.
Na tej samej karcie przewiń w dół do sekcji „Ścieżki wyszukiwania”. W kolumnie projektu w wierszu „Framework Search Paths” dodaj „/usr/lib/libxml2.dylib”.
W wierszu „Ścieżki wyszukiwania nagłówków” ORAZ „Ścieżki wyszukiwania nagłówków użytkownika” dodaj „$ (SDKROOT) / usr / include / libxml2”. W tych dwóch ostatnich przypadkach upewnij się, że ścieżka została wprowadzona w polu Debuguj ORAZ Wydanie.
Następnie. W menu „Produkt” wybierz „Wyczyść”.
To działa i dla Xcode5 też! Dziękuję Ci!
źródło
Nie umieszczaj libxml2.dylib w folderze frameworków, umieść go w katalogu głównym tuż poniżej katalogu głównego (lewa górna niebieska ikona)
Następnie kliknij projekt (górna lewa niebieska ikona), przejdź do ustawień kompilacji, w polu wyszukiwania wpisz „Ścieżki wyszukiwania nagłówka”, a następnie dodaj to „$ (SDKROOT) / usr / include / libxml2”
Ten kod rozwiązuje mój problem, mam nadzieję, że pomoże ci to naprawić
źródło
@Aqib Mumtaz - uruchomiłem go, postępując zgodnie z instrukcjami zawartymi w powyższej notatce Parrisa zatytułowanej „Dodawanie libxml2 w Xcode 4.3 / 5/6”. Etap korzystania ze ścieżki wyszukiwania struktury nie działa, a kompilator narzeka. I tak wielkie brawa dla tego gościa!
Używam Xcode 6.2b3
Niezależnie od używanej wersji Xcode jest błędny. Nie zawsze zakładaj, że błędy kompilacji są prawdziwe. Często zdarza się, że nie podąża za ścieżkami wyszukiwania nagłówka i zawiera wyraźnie wymienione, nie znaleziono. Co gorsza, błędy, które wynikają z tego powodu, kierują Cię w różnych kierunkach, więc tracisz dużo czasu na rozpraszanie się. Powiedziawszy to ...
Polecaj kroki dla niemowląt, zaczynając od tego dokładnie ...:
Uwagi:
mam nadzieję że to pomoże.
Jeśli tak się składa, że tworzysz coś dla weteranów, powiedzmy, aplikację na iPhone'a / iPada lub Maca i pracujesz nad czymś o nazwie "MDWS" lub "VIA", które są interfejsami opartymi na SOAP do systemu dokumentacji medycznej ... proszę o kontakt
źródło
Rozwiązałem w trzech krokach w projekcie testu jednostkowego Xcode 8.0 +
1) Dodałem plik libxml do Build Phases. Postępuj zgodnie z tym linkiem
2) Dodałem inne flagi konsolidatora jako
-ObjC
(dla celów projektu i projektu testowego)3) Ustawiam ścieżkę wyszukiwania nagłówka jako
"${SDKROOT}/usr/include/libxml2"
(Nie zapomnij o podwójnym cudzysłowie po obu stronach) (dla celów projektu i projektu testowego)Jeden z nich rozwiąże problem. Jeśli nie, musisz zastosować wszystkie trzy z powyższych.
źródło
Pomyślałem, że dodałem źle, ale zdaję sobie sprawę, że problem polega na tym, że nie obsługuje łuku, więc sprawdź tutaj wsparcie, oszczędzanie życia -> http://www.michaelbabiy.com/arc-compliant-gdataxml-library/
źródło