2008-10-05 7 views

Respuesta

18

Objective-C se compila en código nativo mediante GCC o LLVM [*]. Puede compilar programas ObjC en Linux (el GCC genérico apoyará felizmente ObjC, aunque utiliza una biblioteca de tiempo de ejecución diferente a cualquiera de las de Apple). Para una API multiplataforma similar a Cocoa (es decir, derivada de Cocoa) que funcionará felizmente en Linux y le permitirá exportar código entre OS X y Linux, consulte GNUstep: http://www.gnustep.org

[*] De hecho, LLVM internamente compila Objective-C a una representación interna de código de bits, luego codifica para la máquina de destino, por lo que quizás la respuesta sea "both" ...

+1

Para aclarar, para 'LLVM', lea 'GCC usando el servidor de LLVM'. LLVM por sí solo no es un compilador sino un generador de código de máquina de fondo. –

+0

@Mike buena aclaración, gracias. –

+1

Apple está trabajando en clang, un front-end para LLVM; GCC no se utiliza en absoluto en esta ruta. Sin embargo, todavía no está listo para el uso de producción. – ephemient

2

Objective-C es una variante de C. Se compila con código nativo.

+0

Tenga en cuenta que esto permite cosas deliciosamente sucias, como el uso de códigos C o C++ desnudos en el medio de los programas de Objective-C. –

4

Sí, Objective-C compila el código de máquina.

Existen compiladores Objective-C para Linux, pero Cocoa es una tecnología OS X-only. He oído hablar de un reemplazo abierto llamado GNUstep, pero no sé mucho al respecto.

+1

Solía ​​trabajar como desarrollador de GNUstep, todavía tengo la bandera de confirmación de SVN pero no lo he hecho en mucho tiempo. Es un sistema agradable y proporciona una gran cantidad de compatibilidad con Cocoa, pero te equivocarías si pensaras que puedes tomar una aplicación Mac arbitraria y escribir 'make'. –

7

Es nativa.

Hay GNUstep que es una implementación de código abierto de la especificación NeXT OpenStep escrita en Objective-C. Su implementación de Cocoa API no es una coincidencia directa, por lo que no es posible una compilación directa sin portar.

+1

Para dar una buena actualización 7 años después; GNUStep hace un muy buen trabajo al reflejar OpenStep/Cocoa en este momento. – Qix

Cuestiones relacionadas