una para originales mensaje frases feliz felicitaciones especial cumpleaños buen bonitas amigo objective-c windows winapi gcc cygwin

objective-c - originales - mensaje de cumpleaños para un amigo super especial



Objetivo C para Windows (13)

Ampliando las dos respuestas anteriores, si solo desea Objective-C pero no cualquiera de los marcos de Cocoa, entonces gcc funcionará en cualquier plataforma. Puedes 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, GNUStep y Cocotron son sus mejores apuestas.

Cocotron implementa una gran cantidad de cosas que GNUStep no, 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 al día 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 funciones de Objective-C 2.0.

No he probado esas funciones con GNUStep, pero si usa una versión suficientemente nueva de gcc, es posible que pueda usarlas. No pude usar Objective-C ++ con GNUStep hace unos años. Sin embargo, GNUStep se compila desde casi cualquier plataforma. Cocotron es un proyecto muy maccentrado. Aunque probablemente sea posible compilarlo en otras plataformas, se trata de archivos de proyecto de XCode, no de archivos make, por lo que solo puede compilar sus marcos de trabajo en OS X. También incluye instrucciones sobre cómo compilar aplicaciones de Windows en XCode, pero no Cualquier otra plataforma. Básicamente, probablemente es 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 se está desarrollando Windows en lugar de sólo para Windows.

Para su valor, Cocotron tiene licencia bajo la licencia MIT, y GNUStep tiene licencia bajo la licencia LGPL.

¿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 enlazar y usar el SDK de Windows para algo como esto? Es una bestia diferente, pero sé que puedo escribir el ensamblaje y el enlace 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 sistemáticas.

¿Alguien sabe de un buen recurso de libros o en línea para hacer o explicar este tipo de cosas?



En primer lugar, olvídate de las herramientas de GNUStep . Ni ProjectManager ni ProjectCenter pueden llamarse IDE. Con el debido respeto, parece que los chicos del proyecto GNUStep están atascados a finales de los 80 s (que es cuando apareció NeXTSTEP por primera vez).

Empuje

ctags compatible con Objective-C desde r771 (asegúrese de elegir la versión previa al lanzamiento de la versión 5.9 y agregue --langmap=ObjectiveC:.mh a la línea de comandos, consulte here ), por lo que tendrá una navegación de etiquetas / finalización de código decente.

Aquí hay una breve howto sobre howto agregar el soporte de Objective-C al complemento de la barra de etiquetas Vim.

Emacs

Lo mismo se aplica a los etags enviados con Emacsen moderno, por lo que puede comenzar con el modo C de Objective de Emacs. YASnippet proporcionará plantillas útiles:

y si desea algo más inteligente que la terminación de código basado en etiquetas básicas , eche un vistazo a esta question .

Eclipse

CDT soporta proyectos basados ​​en Makefile :

- así que técnicamente puedes construir tus proyectos Objective-C fuera de la caja (en Windows, necesitarás 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 del código sobre la marcha se puede desactivar, pero aún así ...). Si desea un resaltado de sintaxis adecuado, puede agregar Eclim a su Eclipse y disfrutar de todas las buenas características de Eclipse y Vim (consulte más arriba).

Otro prometedor complemento 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 gran IDE, es support Objective-C. Si bien es bastante complejo de aprender (aunque no es tan complejo como Emacs), creo que esta es su mejor opción siempre que no le importe comprarla (el precio es bastante asequible).

Además, tiene un complemento de Eclipse que se puede utilizar como alternativa al editor independiente.

KDevelop

Se rumorea que existe un patch KDevelop (15 años, pero ¿a quién le importa?). Personalmente, no creo que KDevelop sea ​​una característica superior a 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.


Obtenga GNUStep here

Obtener MINGW here

Instalar MINGW Instalar GNUStep Entonces probar


Puede obtener un compilador de Object C que funcionará con Windows y que funcione bien con Visual Studio 2008 / 2010 aquí.

flite abierto

Sólo tienes que descargar la última fuente. No es necesario compilar todo CF-Lite; existe una solución llamada objc.sln. Deberá corregir algunas de las rutas de inclusión, pero luego se construirá bien. Incluso se incluye un proyecto de prueba para que pueda ver algunos archivos .m de object-c que se compilan y trabajan en Visual Studio. Una cosa triste es que solo funciona con Win32 no x64. Hay un código de ensamblaje que debería escribirse para x64 para que lo admita.


Puedes usar Objective C dentro del entorno de Windows. Si sigues estos pasos, debería estar funcionando bien:

  1. Visite el sitio web de GNUstep y descargue el GNUstep MSYS Subsystem MSYS de GNUstep (MSYS para GNUstep), el GNUstep Core (bibliotecas para GNUstep) y el desarrollo de GNUstep Devel
  2. Después de descargar estos archivos, instálelos en ese orden, o tendrá problemas con la configuración.
  3. Navegue a C:/GNUstep/GNUstep/System/Library/Headers/Foundation 1 y asegúrese de que Foundation.h existe
  4. Abra un indicador de comandos y ejecute gcc -v para verificar que GNUstep MSYS esté correctamente instalado (si obtiene un error de archivo no encontrado, asegúrese de que la carpeta bin de GNUstep MSYS esté en su PATH )
  5. Utilice este sencillo programa "Hello World" para probar la funcionalidad de GNUstep:

    #include <Foundation/Foundation.h> int main(void) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; NSLog(@"Hello World!."); [pool drain]; return; }

  6. Vuelva a la línea de comandos y cd donde guardó el programa "Hello World" y luego compílelo: 2

    gcc -o helloworld.exe <HELLOWORLD>.m -I /GNUstep/GNUstep/System/Library/Headers -L /GNUstep/GNUstep/System/Library/Libraries -std=c99 -lobjc -lgnustep-base -fconstant-string-class=NSConstantString

  7. Finalmente, desde el símbolo del sistema, escriba helloworld para ejecutarlo

Todo lo mejor, y diviértete con Objective-C!

NOTAS :

  1. Utilicé la ruta de instalación predeterminada: ajuste la línea de comandos como corresponda
  2. Asegúrese de que la ruta de su carpeta sea similar a la mía, de lo contrario obtendrá un error

Si solo quieres experimentar, hay un compilador Objective-C para .NET (Windows) aquí: qckapp


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 Apple II Emulator http://virtualapple.org/ . Parece limitado a los juegos.


Soy consciente de que esta es una publicación muy antigua, pero he encontrado una solución que solo está disponible más recientemente Y habilita casi todas las funciones de Objective-C 2.0 en la plataforma Windows.

Con la llegada de gcc 4.6, se agregó al compilador de Objective-C la compatibilidad con las funciones de lenguaje de Objective-C 2.0 (bloques, sintaxis de puntos, propiedades sintetizadas, etc.) (consulte las notas de la versión para obtener más detalles). Su tiempo de ejecución también se ha actualizado para que funcione de forma 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 modificaciones.

Como nota al margen, una característica que no está disponible es el diccionario / array / etc literales ya que todos están codificados en Clang para usar las clases NSDictionary, NSArray, NSNumber, etc. de Apple.

Sin embargo, si estás feliz de vivir sin los amplios marcos de Apple, puedes hacerlo. Como se señaló en otras respuestas, GNUStep y Cocotron proporcionan versiones modificadas de las bibliotecas de clases de Apple, o puede escribir su propia opción (mi opción preferida).

MinGW es una forma de obtener GCC 4.6 en la plataforma Windows, y puede descargarse desde el sitio web de 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 de 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 GUI nativas de Windows con la bandera -mwindows . Por ejemplo:

g++ -mwindows MyFile.cpp

No lo he intentado todavía, 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, todo en la única aplicación de Windows.


También:

Cocotron es un proyecto de código abierto que tiene como objetivo implementar una API multiplataforma Objective-C similar a la descrita por la documentación Cocoa de Apple Inc. Esto incluye las API de AppKit, Foundation, Objective-C y las API de soporte, como CoreGraphics y CoreFoundation.

http://www.cocotron.org/


Tengo sentimientos encontrados sobre el proyecto Cocotron. Me alegra que estén liberando el código fuente y compartiéndolo, pero no creo que estén haciendo las cosas de la manera más fácil.

Ejemplos
Apple ha liberado el código fuente para el tiempo de ejecución de object-c , que incluye propiedades y recolección de basura. Sin embargo, el proyecto Cocotron tiene su propia implementación del tiempo de ejecución de object-c. ¿Por qué molestarse en duplicar el esfuerzo? Incluso hay un archivo de Visual Studio Project que puede usarse para crear un archivo objc.dll. O si es realmente perezoso, simplemente puede copiar el archivo DLL de una instalación de Safari en Windows.

Tampoco se molestaron en aprovechar CoreFoundation, que también es de código abierto de Apple. Publiqué una question sobre esto pero no recibí una respuesta.

Creo que la mejor solución actual es tomar el código fuente de varias fuentes (Apple, CocoTron, GnuStep) y combinarlo con lo que necesite. Tendrás que leer mucha fuente pero valdrá la pena el resultado final.


Un intento reciente de trasladar Objective C 2.0 a Windows es el proyecto Subjective .

Desde el Readme:

Subjetivo es un intento de traer Objective C 2.0 con soporte ARC a Windows.

Este proyecto es una bifurcación de objc4-532.2, el tiempo de ejecución de Objective C que se incluye con OS X 10.8.5. El puerto se puede compilar de forma cruzada en OS X utilizando llvm-clang combinado con el enlazador MinGW.

Existen ciertas limitaciones, muchas de las cuales son una cuestión de trabajo adicional, mientras que otras, como las excepciones y los bloques, dependen de un trabajo más serio en proyectos de terceros. Las limitaciones son:

• Sólo de 32 bits: 64 bits está en curso

• Solo enlace estático: el enlace dinámico está en marcha

• Sin cierres / bloques: hasta que libdispatch los admita en Windows

• Sin excepciones, hasta que Clang los admita en Windows

• No hay estilo antiguo GC - hasta que a alguien le importe ...

• Elementos internos: no vtables, no es compatible con gdb, solo malloc simple, sin preoptimizaciones: algunas de estas cosas estarán disponibles en la versión de 64 bits.

• Actualmente se requiere un compilador clang parcheado; el parche agrega el indicador -fobjc-runtime = subj

El proyecto está disponible en Subjective , y también hay un thread en el Grupo Cocotron que describe algunos de los avances y problemas encontrados.


WinObjC? Windows Bridge para iOS (anteriormente conocido como ''Project Islandwood'').

Windows Bridge para iOS (también conocido como 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 soporte para la compatibilidad con API de iOS. Si bien la versión final se realizará más adelante este otoño (lo que permitirá al puente aprovechar las nuevas capacidades de herramientas que se incluirá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 en el Windows Bridge para iOS http://blogs.windows.com/buildingapps/2015/08/06/windows-bridge-for-ios-lets-open-this-up/ se http://blogs.windows.com/buildingapps/2015/08/06/windows-bridge-for-ios-lets-open-this-up/ el compilador, tiempo de ejecución, integración de IDE y lo que el puente es y no es. Lo mejor de todo es que el código fuente para el puente de iOS está activo en GitHub en este momento.

El puente iOS es compatible con las aplicaciones de Windows 8.1 y Windows 10 creadas para arquitecturas de procesadores x86 y x64, y pronto agregaremos optimizaciones de compilador y soporte para ARM, que agrega soporte móvil.