2010-11-11 14 views
7

Soy consciente de la existencia de libobjc2, y creo que necesitaré usar clang en lugar de GCC, pero no puedo encontrar ninguna instrucción básica de lo que es diferente sobre el proceso de compilación.¿Cómo se usa Obj-C 2.0 con GNUstep?

Puede alguien dar , paso a paso las instrucciones explícitas en la adquisición, configurar, compilar y usar GNUStep con Objective-C 2.0 en Ubuntu?

+0

Todavía no he encontrado una respuesta a esto, pero mientras tanto, he cambiado a Cocotron, y Obj-C 2.0 funciona muy bien allí (junto con NSXMLDocument y algunas otras cosas que me faltaban en GNUstep). Por supuesto, requiere una compilación cruzada de una Mac.:( – andyvn22

Respuesta

-1

Según el GNUstep Wiki, solo necesita compilar su código con -fblocks y -fobjc-nonfragile-abi. Entonces solo usa las características del lenguaje en tu código.

+3

Creo que el proceso es mucho más complicado que eso. Google sugiere que GNUstep make y GNUstep base deben ser recompilados con libobjc2 en mente. – andyvn22

2

Como ya se ha hecho referencia al GNUStep ObjC2 FAQ, supongo que ha echado un vistazo. Me gustaría señalar esto, sin embargo:

Para funciones más avanzadas, actualmente solo es compatible si compila con Clang, necesitará el tiempo de ejecución de GNUstep. Esto actualmente no se considera listo para producción. Debería funcionar como un reemplazo directo para el tiempo de ejecución de GCC, pero algunas de las funciones avanzadas no están bien probadas.

The FAQ llama también el siguiente:

Si está utilizando una versión reciente de GCC para compilar el código, entonces usted debe tener una copia de la biblioteca de ejecución de Objective-C que viene con el compilador .

Si compila con el distintivo -fobjc-nonfragile-abi, entonces usará el nuevo ABI. Esto solo es compatible con el tiempo de ejecución de GNUstep. Esto añade:

  • introspección Propiedad
  • introspección en conocer los protocolos opcionales
  • variables de instancia no frágiles
  • soporte de proxy de reenvío

lo tanto, si usted está buscando mayores la funcionalidad a través de GCC, this tutorial haría bien el trabajo, al igual que this one. Ha llamado explícitamente que está buscando para hacer esto con la funcionalidad proporcionada por Clang (a través de libobjc2), que tiene su propia cama de documentación.

Obtaining a release of Clang and getting set up parece bastante cortado y seco. El documento LLVM Getting Started es excepcionalmente robusto (archivo de documentación completo here), que debe proporcionar información sobre cómo configurar y configurar adecuadamente el servidor. Se puede encontrar información adicional sobre el procedimiento de construcción esperado here.

Sin embargo, la compilación de una aplicación Objective-C en Clang parece muy poco documentada y no comprobada en el momento de escribir estas líneas. A medida que las funciones estén disponibles y la base del código se estabilice, imagino que se activará más documentación del usuario.

+0

Gracias por su respuesta. He compilado libobjc2 (tuve que compilar clang de fuente para obtener compilación de libobjc2, extrañamente), e incluso he logrado compilar gnustep-base y vincular con libobjc2. Desafortunadamente, cualquier uso de NSObject (que es realmente raro;)) causa una segfault. Creo que tal vez GNUstep simplemente no está listo para que la gente normal lo use (aunque todo indica que todo el equipo de desarrollo del proyecto Etoilé está utilizando libobjc2 con éxito; grr). – andyvn22