2012-05-17 11 views
7

Sto cercando di utilizzare una libreria, in particolare SOIL (Libreria di immagini OpenGL semplice) in Xcode 4.2.1. In Fasi di compilazione -> Libreria di collegamenti con librerie, aggiungo tutti i file .h e .c forniti con l'archivio zip SOIL.Inclusione di intestazioni in un progetto Xcode 4.2.1

Quando costruisco il progetto, ottengo il seguente messaggio di errore per ogni .he file .c aggiunto:

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

e un errore di linker:

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

risposta

9

.he .c i file non sono librerie. Aggiungi i file .c alla fase di compilazione e solo #import i file .h dove necessario.

Per verificare che collega ho fatto quanto segue:

  • Creare una nuova applicazione per Mac cacao.
  • aggiungere 10 file dalla cartella SUOLO 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, e stb_image_aug.h.
  • Dire a Xcode di copiarli nel mio progetto.
  • Aggiungere una riga al metodo applicationDidFinishLaunching: del delegato della mia app: SOIL_load_OGL_texture("img_test.png", SOIL_LOAD_AUTO, SOIL_CREATE_NEW_ID, 0);.
  • Costruire il bersaglio per la corsa.

Sebbene vi siano numerosi avvisi del compilatore sulla conversione dei dati, questi passaggi generano un file eseguibile senza errori del linker.

+0

ho potuto aggiungere i file in modo corretto a differenza @Terribad sembra. L'errore rimane ancora –

+0

Immagino tu intenda l'errore del linker al contrario del messaggio "skipping file"? Riesci a trovare 'SOIL_load_OGL_texture' definito all'interno di uno dei file che vengono creati (per esempio SOIL.c)? –

+0

+1 Ha funzionato come un fascino. Grazie Philip. – welbornio

1

Prova ad aggiungere -Framework al nome del tuo quadro in "Altre Bandiere Linker" quali:

-framework SOIL 
Problemi correlati