Sto imparando il linguaggio Objective-C. Poiché non ho un Mac, sto compilando e eseguendo il mio codice all'interno della piattaforma Ubuntu 11.04.Problemi durante la compilazione dell'obiettivo C con Clang (Ubuntu)
Fino ad ora, stavo usando gcc per compilare. Ho installato GNUStep e tutto funzionava. Ma poi ho iniziato a provare alcune funzionalità di Objective-C 2.0, come @property e @synthesize, che gcc non consente.
Così ho provato a compilare il codice con Clang, ma sembra che non stia collegando correttamente il mio codice con le librerie GNUStep, nemmeno con un semplice programma Hello world.
Per esempio, se compilo il seguente codice:
#import <Foundation/Foundation.h>
int main(void) {
NSLog(@"Hello world!");
return 0;
}
L'uscita del compilatore è:
/tmp/cc-dHZIp1.o: In function `main':
test.m:(.text+0x1f): undefined reference to `NSLog'
/tmp/cc-dHZIp1.o: In function `.objc_load_function':
test.m:(.text+0x3c): undefined reference to `__objc_exec_class'
collect2: ld returned 1 exit status
clang: error: linker (via gcc) command failed with exit code 1 (use -v to see invocation)
Il comando che sto usando per compilare è
clang -I /usr/include/GNUstep/ test.m -o test
con la direttiva -I per includere le librerie GNUStep (altrimenti, Clang non è in grado di trovare Foundation.h).
Ho cercato su google il mio problema e visitato sia le pagine Web GNUStep che quelle di Clang, ma non ho trovato una soluzione. Quindi ogni aiuto sarà apprezzato.
Grazie!
Hi URLArenzo.Ho già installato quel pacchetto e ho provato a compilare gcc (funzionava perfettamente). Tuttavia, ho capito che gcc non consente alcune funzionalità di Objective-C 2.0; quindi sto cercando di far funzionare le cose con il compilatore Clang. –