2012-05-17 33 views
7

Xcode 4.2.1'de bir kütüphane, özellikle SOIL (Basit OpenGL Image Library) kullanmaya çalışıyorum. Yapılandırma Aşaması altında -> Kitaplıklı Bağlantı Kitaplığı SOIL zip arşiviyle birlikte gelen tüm .h ve .c dosyalarını ekliyorum. Projeyi oluştururkenBir Xcode 4.2.1 projesine üstbilgiler dahil

, ben her .h ve .c dosya için aşağıdaki hata iletisi eklendi olsun:

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

ve bağlayıcı hatası:

"_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)

cevap

9

.h ve .c dosyalar kütüphaneler değildir. .c dosyalarını derleme aşamasına ekleyin ve sadece #import .h dosyalarını gereken yere ekleyin.

Aşağıdaki yapmış bağlama doğrulamak için:

  • bir yeni Mac Kakao uygulaması oluşturun.
  • TOPRAK src klasöründen 10 dosya ekleyin: 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, ve stb_image_aug.h.
  • Xcode'a bunları projeme kopyalamasını söyle.
  • Bir uygulama benim app delegesinin applicationDidFinishLaunching: yöntemine ekleyin: SOIL_load_OGL_texture("img_test.png", SOIL_LOAD_AUTO, SOIL_CREATE_NEW_ID, 0);.
  • Çalışmak için hedef oluşturun.

Veri dönüştürme konusunda çeşitli derleyici uyarıları olmasına rağmen, bu adımlar hiçbir bağlayıcı hatası olmayan bir yürütülebilir dosya üretir. gibi "Diğer Bağlayıcı Flags" daki çerçevenin adının -Çerçeve ekleyerek

+0

Ben öyle görünüyor @Terribad aksine doğru bir şekilde dosyaları ekledik var. Hata hala devam ediyor –

+0

"Atlama dosyası" mesajının tersine linker hatası mı demek istiyorsunuz? Yapılmakta olan dosyalardan birinin içinde tanımlanan SOIL_load_OGL_texture öğesini (örneğin, SOIL.c) bulabilir misiniz? –

+0

+1 Büyüleyici bir eserdi. Teşekkürler Phillip. – welbornio

İlgili konular