¿Cuál sería la mejor manera de escribir Objective-C en la plataforma Windows?
Cygwin y gcc? ¿Hay alguna manera de que pueda integrar esto de alguna manera en Visual Studio?
En ese sentido, ¿hay alguna sugerencia sobre cómo vincular y usar el SDK de Windows para algo como esto? Es una bestia diferente, pero sé que puedo escribir ensamblajes y enlaces en las DLL de Windows, lo que me da acceso a esas llamadas, pero no sé cómo hacerlo sin buscar en Google y obtener instrucciones poco a poco.
¿Alguien sabe de un buen recurso en línea o libro para hacer o explicar este tipo de cosas?
Respuestas:
Ampliando las dos respuestas anteriores, si solo desea Objective-C pero no ninguno de los marcos de Cocoa, entonces gcc funcionará en cualquier plataforma. Puede usarlo a través de Cygwin u obtener MinGW. Sin embargo, si desea los marcos de Cocoa, o al menos un subconjunto razonable de ellos, entonces GNUStep y Cocotron son sus mejores apuestas.
Cocotron implementa muchas cosas que GNUStep no implementa, como CoreGraphics y CoreData, aunque no puedo garantizar cuán completa es su implementación en un marco específico. Su objetivo es mantener a Cocotron actualizado con la última versión de OS X para que cualquier programa viable de OS X pueda ejecutarse en Windows. Debido a que GNUStep generalmente usa la última versión de gcc, también agrega soporte para Objective-C ++ y muchas de las características de Objective-C 2.0.
No he probado esas características con GNUStep, pero si usa una versión suficientemente nueva de gcc, podría usarlas. No pude usar Objective-C ++ con GNUStep hace unos años. Sin embargo, GNUStep compila desde casi cualquier plataforma. Cocotron es un proyecto muy centrado en mac. Aunque probablemente sea posible compilarlo en otras plataformas, viene con archivos de proyecto XCode, no con archivos MAKE, por lo que solo puede compilar sus marcos de fábrica en OS X. También viene con instrucciones para compilar aplicaciones de Windows en XCode, pero no cualquier otra plataforma Básicamente, probablemente sea posible configurar un entorno de desarrollo de Windows para Cocotron, pero no es tan fácil como configurar uno para GNUStep, y estará solo, por lo que GNUStep es definitivamente el camino a seguir si está desarrollando en Windows en lugar de solo para Windows.
Para lo que vale, Cocotron tiene licencia bajo la licencia MIT, y GNUStep tiene licencia bajo la LGPL.
fuente
Usted puede utilizar Objective C dentro del entorno Windows. Si sigue estos pasos, debería funcionar bien:
GNUstep MSYS Subsystem
(MSYS para GNUstep),GNUstep Core
(Bibliotecas para GNUstep) yGNUstep Devel
C:\GNUstep\GNUstep\System\Library\Headers\Foundation
1 y asegúrese de queFoundation.h
existagcc -v
para verificar queGNUstep MSYS
esté instalado correctamente (si obtiene un error de archivo no encontrado, asegúrese de que labin
carpetaGNUstep MSYS
esté en suPATH
)Use este sencillo programa "Hello World" para probar la funcionalidad de GNUstep:
Vuelva al símbolo del sistema y
cd
al lugar donde guardó el programa "Hello World" y luego compílelo: 2Finalmente, desde el símbolo del sistema, escriba
helloworld
para ejecutarlo¡Todo lo mejor y diviértete con Objective-C!
NOTAS :
fuente
gcc -o helloworld...
ac:\gnustep\bin\gcc -o helloworld...
y funcionó. La alternativa sería modificar las Variables de entorno que no hice, ya que solo estaba viendo el Objetivo C. Gracias a teshguru por la respuesta al punto.También:
http://www.cocotron.org/
fuente
WinObjC? Windows Bridge para iOS (anteriormente conocido como 'Project Islandwood').
Windows Bridge para iOS (también denominado WinObjC) es un proyecto de código abierto de Microsoft que proporciona un entorno de desarrollo Objective-C para Visual Studio / Windows. Además, WinObjC proporciona compatibilidad con la compatibilidad con la API de iOS. Si bien la versión final se realizará más adelante este otoño (lo que permite que el puente aproveche las nuevas capacidades de herramientas que se enviarán con la próxima actualización de Visual Studio 2015),
El puente está disponible para la comunidad de código abierto ahora en su estado actual. Entre ahora y la caída. El puente de iOS como un proyecto de código abierto bajo la licencia MIT. Dada la ambición del proyecto, facilitar a los desarrolladores de iOS crear y ejecutar aplicaciones en Windows.
Salmaan Ahmed tiene una publicación detallada sobre el Puente de Windows para iOS http://blogs.windows.com/buildingapps/2015/08/06/windows-bridge-for-ios-lets-open-this-up/ discutiendo el compilador, tiempo de ejecución, integración IDE y qué es y qué no es el puente. Lo mejor de todo es que el código fuente para el puente iOS está en vivo en GitHub en este momento.
El puente iOS es compatible con aplicaciones de Windows 8.1 y Windows 10 creadas para arquitecturas de procesador x86 y x64, y pronto agregaremos optimizaciones de compilador y soporte para ARM, que agrega soporte móvil.
fuente
Tengo sentimientos encontrados sobre el proyecto Cocotron. Me alegra que estén lanzando código fuente y compartiendo, pero no creo que estén haciendo las cosas de la manera más fácil.
Ejemplos.
Apple ha lanzado el código fuente al tiempo de ejecución de Objective-C , que incluye propiedades y recolección de basura. Sin embargo, el proyecto Cocotron tiene su propia implementación del tiempo de ejecución del objetivo-c. ¿Por qué molestarse en duplicar el esfuerzo? Incluso hay un archivo de proyecto de Visual Studio que se puede usar para crear un archivo objc.dll. O si eres realmente vago, puedes copiar el archivo DLL desde una instalación de Safari en Windows.
Tampoco se molestaron en aprovechar CoreFoundation, que también es de código abierto por Apple. Publiqué una pregunta sobre esto pero no recibí una respuesta.
Creo que la mejor solución actual es tomar el código fuente de múltiples fuentes (Apple, CocoTron, GnuStep) y combinarlo con lo que necesita. Tendrá que leer muchas fuentes, pero valdrá la pena el resultado final.
fuente
Soy consciente de que esta es una publicación muy antigua, pero he encontrado una solución que solo ha estado disponible más recientemente Y permite casi todas las funciones de Objective-C 2.0 en la plataforma Windows.
Con el advenimiento de gcc 4.6, se agregó compatibilidad con las características del lenguaje Objective-C 2.0 (bloques, sintaxis de puntos, propiedades sintetizadas, etc.) al compilador de Objective-C (consulte las notas de la versión de para más detalles). Su tiempo de ejecución también se ha actualizado para que funcione de manera casi idéntica al tiempo de ejecución Objective-C 2.0 de Apple. En resumen, esto significa que (casi) cualquier programa que compile legítimamente con Clang en una Mac también compilará con gcc 4.6 sin modificación.
Como nota al margen, una característica que no está disponible son los literales de diccionario / matriz / etc., ya que todos están codificados en Clang para usar las clases NSDictionary, NSArray, NSNumber, etc. de Apple.
Sin embargo, si está feliz de vivir sin los extensos frameworks de Apple, puede hacerlo. Como se señaló en otras respuestas, GNUStep y Cocotron proporcionan versiones modificadas de las bibliotecas de clases de Apple, o puede escribir la suya (mi opción preferida).
MinGW es una forma de obtener GCC 4.6 en la plataforma Windows, y se puede descargar desde el sitio web de The MinGW . Asegúrese de que cuando lo instale incluya la instalación de C, C ++, Objective-C y Objective-C ++. Si bien es opcional, también sugeriría instalar el entorno MSYS.
Una vez instalado, la fuente Objective-C 2.0 se puede compilar con:
gcc MyFile.m -lobjc -std=c99 -fobjc-exceptions -fconstant-string-class=clsname (etc, additional flags, see documentation)
MinGW también incluye soporte para compilar aplicaciones nativas de Windows GUI con el
-mwindows
indicador. Por ejemplo:g++ -mwindows MyFile.cpp
Todavía no lo he intentado, pero imagino que si ajusta sus clases de Objective-C en Objective-C ++ en la capa más alta posible, debería poder entrelazar con éxito la GUI nativa de Windows C ++ y Objective-C en una sola aplicación de Windows.
fuente
Echa un vistazo a WinObjC :
https://github.com/Microsoft/WinObjC
Es un proyecto oficial de código abierto de Microsoft que se integra con Visual Studio + Windows.
fuente
Si solo quieres experimentar, hay un compilador Objective-C para .NET (Windows) aquí: qckapp
fuente
Puede obtener un compilador c objetivo que funcionará con Windows y jugará bien con Visual Studio 2008 \ 2010 aquí.
open-c flite
Simplemente descargue la última fuente. No necesita compilar todo CF-Lite, hay una solución llamada objc.sln. Tendrá que arreglar algunas de las rutas de inclusión, pero luego se compilará bien. Incluso se incluye un proyecto de prueba para que pueda ver algunos archivos Object-c .m compilados y trabajando en Visual Studio. Una cosa triste es que solo funciona con Win32 no x64. Hay algún código de ensamblaje que debería escribirse para x64 para que sea compatible.
fuente
Un intento reciente de portar Objective C 2.0 a Windows es el proyecto subjetivo .
Del Léame:
El proyecto está disponible en Github , y también hay un hilo en el Grupo Cocotron que describe algunos de los avances y problemas encontrados.
fuente
Obtenga GNUStep aquí
Obtén MINGW aquí
Instale MINGW Instale GNUStep Luego pruebe
fuente
Si te sientes cómodo con el entorno de Visual Studio,
Proyecto pequeño: jGRASP con gcc Proyecto grande: Cocotron
Escuché que hay emuladores, pero solo pude encontrar el Emulador de Apple II http://virtualapple.org/ . Parece limitado a los juegos.
fuente
Antes que nada, olvídate de las herramientas GNUStep . Ni ProjectManager ni ProjectCenter pueden llamarse IDE. Con el debido respeto, parece que los chicos del proyecto GNUStep están estancados a finales de los 80 (que es cuando apareció NeXTSTEP por primera vez).
Empuje
ctags
Admite Objective-C desde r771 (asegúrate de elegir la versión 5.9 previa al lanzamiento y agregarla--langmap=ObjectiveC:.m.h
a la línea de comando, mira aquí ), para que tengas un código decente / navegación de etiqueta.Aquí hay un breve tutorial sobre cómo agregar compatibilidad con Objective-C al complemento Vim tagbar.
Emacs
Lo mismo se aplica al
etags
envío con Emacsen moderno, por lo que puede comenzar con Emacs Objective C Mode . YASnippet proporcionará plantillas útiles:y si desea algo más inteligente que la finalización del código basado en etiquetas básicas , eche un vistazo a esta pregunta .
Eclipse
CDT apoya
Makefile
proyectos basados en:- técnicamente puede construir sus proyectos Objective-C de forma inmediata (en Windows, necesitará la cadena de herramientas Cygwin o MinGW ). El único problema es el editor de código que informará muchos errores contra lo que cree que es un código C puro (la verificación de código sobre la marcha se puede desactivar, pero aún así ...). Si desea resaltar la sintaxis adecuada, puede agregar Eclim a su Eclipse y disfrutar de todas las buenas características de Eclipse y Vim (ver arriba).
Otro plugin prometedor de Eclipse es Colorer , pero aún no es compatible con Objective-C. Sin embargo, siéntase libre de presentar una solicitud de función.
SlickEdit
SlickEdit , entre otras características de un buen IDE, hace de soporte de Objective-C. Si bien es bastante complejo de aprender (aunque no tan complejo como Emacs), creo que esta es su mejor opción siempre que no le importe comprarlo (el precio es bastante asequible).
Además, tiene un complemento Eclipse que se puede usar como una alternativa al editor independiente.
KDevelop
Se rumorea que existe un parche de KDevelop (15 años, pero ¿a quién le importa?). Personalmente, no creo que KDevelop tenga características superiores en comparación con Emacsen , por lo que no me molestaría en probarlo.
Lo anterior también se aplica al desarrollo de Objective-C en Linux, ya que todas las herramientas mencionadas son más o menos portátiles.
fuente