Estoy aprendiendo el lenguaje Objective-C. Como no tengo una Mac, estoy compilando y ejecutando mi código dentro de la plataforma Ubuntu 11.04.Problemas al compilar el Objetivo C con Clang (Ubuntu)
Hasta ahora, estaba usando gcc para compilar. He instalado GNUStep y todo estaba funcionando. Pero luego comencé a probar algunas características de Objective-C 2.0, como @property y @synthesize, que gcc no permite.
Así que traté de compilar el código con Clang, pero parece que no está vinculando correctamente mi código con las bibliotecas GNUStep, ni siquiera con un simple programa Hola mundo.
Por ejemplo, si puedo compilar el código siguiente:
#import <Foundation/Foundation.h>
int main(void) {
NSLog(@"Hello world!");
return 0;
}
La salida del compilador es:
/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)
El comando que estoy utilizando para compilar es
clang -I /usr/include/GNUstep/ test.m -o test
con la directiva -I para incluir las bibliotecas GNUStep (de lo contrario, Clang no puede encontrar Foundation.h).
He buscado en Google mi problema y he visitado las páginas web de GNUStep y Clang, pero no he encontrado una solución para ello. Entonces cualquier ayuda será apreciada.
Gracias!
Hola URLArenzo.Ya instalé ese paquete e intenté compilar gcc (funcionaba perfectamente). Sin embargo, descubrí que gcc no permite algunas características de Objective-C 2.0; así que estoy tratando de hacer que todo funcione con el compilador Clang. –