2012-04-30 10 views
14

Utworzono przykładową aplikację do zniekształcania nierówności, korzystając z GPUImage framework. Dodałem te ramy do mojego wniosku, ale widzę następujący błądCo należy zrobić, jeśli nie mogę znaleźć nagłówka GPUImage.h dla architektury GPUImage?

Lexical or preprocessor issue 'GPUImage.h' file not found.

Dodałem flagę -ObjC do innych Flagi łącznika, ale nadal widzę ten błąd. Jak mogę rozwiązać ten problem i poprosić moją aplikację do kompilacji?

Odpowiedz

6

Czy postępowałeś zgodnie z instrukcjami zawartymi w Readme na project page? Z instrukcją montażu:

You'll also need to find the framework headers, so within your project's build settings set the Header Search Paths to the relative path from your application to the framework/ subdirectory within the GPUImage source directory. Make this header search path recursive.

Jeśli widzisz błąd powyżej, oznacza to, że nie wskazują nagłówku ścieżek wyszukiwania w odpowiednim katalogu, w którym masz zainstalowaną GPUImage stosunku do projektu i/lub nie kliknąłem pola wyboru po lewej stronie, aby uczynić te ścieżki rekurencyjne.

Pokazuję kilka zrzutów ekranu, gdzie trzeba przejść, aby ustawić to w this answer, co wyjaśnia coś podobnego do frameworka Core Plot. Obowiązują te same zasady, tylko musisz znaleźć miejsce instalacji GPUImage na.

5

Dodaję względną ścieżkę do "Ścieżek wyszukiwania nagłówków", ale nadal występuje błąd "nie znaleziono".

Następnie dodaję ścieżkę do "Ścieżek wyszukiwania nagłówka użytkownika" i działa.

Może ci pomóc.

enter image description here

+0

Czy to też zadziałało, wydawało się, że usuwa się z "Ścieżek wyszukiwania nagłówków użytkownika" ... dziwne. Dziękuję jednak za to. –

29

Dodawanie GPUImage ramy projektu XCode może być trudne. Więc dodałem szczegółowe instrukcje krok po kroku w/obrazki, jak to zrobić.

Metoda statyczna kompilacja (szczegółowe rozwiązanie, więc nie zrobić bałagan)

Ta metoda jest statyczna kompilacja. W tym przypadku skompilujemy framework za pomocą pliku ./build.sh. Po prostu dodaj go do naszego projektu XCode, a następnie skonfiguruj XCode, aby poprawnie go używać.

  1. Pobierz GPUImage z Github i wypakuj go (lub po prostu sklonuj).
  2. Przejdź do folderu GPUImage w terminalu
  3. Run ./build.sh

    UWAGA: Ta skompilować i utworzyć gotowy do użycia binarny dla wszystkich SDK na komputerze Mac.

  4. build.sh tworzy folder o nazwie build i generuje skompilowane pliki binarne i zrzuca je do folderów, takich jak: uwalnianiu iPhone, uwalnianiu iPhoneOS, uwalnianiu iphonesimulator itp folderów. enter image description here

  5. Dla iPhone użyć release-iphone (działa także na symulatorze).
  6. Skopiuj (nie przeciągnij i upuść) Release-iphone do katalogu głównego projektu XCode, abyśmy mieli lokalną kopię struktury.
  7. Teraz iPhone przeciągnij i upuść Release-iphone na swój projekt XCode. Pamiętaj, aby zaznaczyć opcję "Kopiuj na ...".

    UWAGA:

    • Ten Release-iphone folder zawiera dwa podfoldery: obejmują i lib
    • zawierają folder zawiera cały nagłówek .h pliki
    • lib folder zawiera skompilowaną wersję binarną Plik jonowy o nazwie libGPUImage.a
    • Teraz musimy po prostu skonfigurować XCode używać .h i pliki .a. **
  8. Wybierz swój projekt w Eksploratorze projektu> Nazwa projektu pod Targets > wybierz Budowanie Fazy> Expand link binarne z bibliotekami

  9. Dodaj libGPUImage.a aby link Binary sekcję z bibliotekami. Możesz kliknąć prawym przyciskiem myszy na libGPUImage.a następnie Otwórz w Finderze i na końcu przeciągnij i upuść.

  10. podczas gdy jesteśmy w niej również dodać zależnych ramami/bibliotek w kolejnym GPUImage za CoreMedia, CoreVideo, OpenGLES, AVFoundation, QuartzCore do Łącze binarnych z Biblioteki sekcji enter image description here

  11. Teraz, pozwala skonfiguruj nagłówki .h.

  12. Wybierz swój projekt w Eksploratorze projektu> Nazwa projektu pod Targets> wybierz Budowanie Ustawienia> i wpisz ścieżki wyszukiwania zobaczyć ścieżki wyszukiwania sekcji.

  13. Otwórz Nagłówki Wyszukaj ścieżki klikając pole wartości.

  14. Przeciągnij i upuść folder lib do tego okna podręcznego. Uwaga: Jeśli wyświetla absolutną ścieżkę, zmień ją na $ (SRCROOT)/path/to/lib/. (Powinieneś mieć framework w stosunku do twojego projektu xcode patrz krok 6).

  15. Powtórz 11 & 12 dla Ścieżki wyszukiwania biblioteki również.

enter image description here Dodatkowe wskazówki: Można dodać .h pliki Biblioteki Szukaj Ścieżki lub Nagłówki ścieżek wyszukiwania, można uczynić je rekurencyjne. Mam główny folder główny o nazwie Dependencies folder, w którym zachowuję wszystkie zależności, takie jak struktura MySDK, w tym wersja-iPhone. I mam tylko jedną ścieżkę wyszukiwania w zależnościach (folder główny) i wykonałem ją jako rekursywną.

+2

To jest po prostu jedna z najlepszych odpowiedzi, jakie widziałem na SO. –

+1

@MrSMAK Dzięki. Zajęło mi to trochę czasu :) –

+0

Moja przyjemność :-) –

2

w końcu zdałem sobie sprawę, kluczowym słowem jest relative kładę pliki źródłowe GPUImage w moim projekcie głównym katalogu: enter image description here

przed I rozwiązać problem, dodam Header wyszukiwania Paths to:

$(PROJECT_DIR)/GPUImage/framework

$(PROJECT_DIR)/GPUImage/framework/iOS

i uczynić je rekurencyjne, ale błąd nadal istnieje, więc Zmieniłem Ścieżki na:

GPUImage/framework i sprawię, że będzie rekursywne, to działa.

Mam nadzieję, że to pomaga.

Powiązane problemy