2012-05-17 9 views
7

Próbuję użyć biblioteki, szczególnie SOIL (Simple OpenGL Image Library) w Xcode 4.2.1. W fazie budowania -> Połącz bibliotekę z bibliotekami dodaję wszystkie pliki .h i .c dołączone do archiwum ZIP SOIL.W tym nagłówki w projekcie Xcode 4.2.1

Kiedy budować projektu, otrzymuję następujący komunikat o błędzie dla każdego pliku .c .h i dodaje:

warning: skipping file '/Users/saw/XcodeProjects/Assignment01 copy/Assignment01/image_DXT.c' (unexpected file type 'sourcecode.c.c' in Frameworks & Libraries build phase)

i błąd Łącznik:

"_SOIL_load_OGL_texture", referenced from: Init() in main.o Symbol(s) not found for architecture x86_64 Clang: error: linker command failed with exit code 1 (use -v to see invocation)

Odpowiedz

9

.h i .c pliki nie są bibliotekami. Dodaj pliki .c do fazy kompilacji i po prostu #import pliki .h gdzie jest to konieczne.

Aby sprawdzić łącząc Zrobiłem następujące:

  • Utwórz nową aplikację Mac kakao.
  • Dodać 10 pliki z folderu SOIL src : SOIL.c, image_DXT.h, stbi_DDS_aug.h, SOIL.h, image_helper.c, stb_image_aug.c, stbi_DDS_aug_c.h, image_DXT.c, image_helper.h, i stb_image_aug.h.
  • Powiedz Xcode, aby skopiować je do mojego projektu.
  • Dodaj jedną linię do metody applicationDidFinishLaunching: mojego operatora aplikacji: SOIL_load_OGL_texture("img_test.png", SOIL_LOAD_AUTO, SOIL_CREATE_NEW_ID, 0);.
  • Zbuduj cel do biegania.

Mimo że istnieje wiele ostrzeżeń dotyczących kompilacji związanych z konwersją danych, te kroki tworzą plik wykonywalny bez błędów łącznika.

+0

ja dodałem pliki w prawidłowy sposób przeciwieństwie @Terribad się wydaje. Błąd nadal pozostaje –

+0

Zakładam, że masz na myśli błąd łącznika w przeciwieństwie do komunikatu "pomijanie pliku"? Czy możesz znaleźć słowo "SOIL_load_OGL_texture" zdefiniowane w jednym z tworzonych plików (na przykład SOIL.c)? –

+0

+1 Pracował jak urok. Dzięki, Phillip. – welbornio

1

spróbuj dodać -framework aby nazwać frameworka w „inne flagi łącznik”, takimi jak:

-framework SOIL 
Powiązane problemy