¿Cómo programar para Windows en Ubuntu?

24

¿Hay alguna forma de crear aplicaciones de consola de Windows (C ++ o C #) dentro del IDE de Ubuntu (por ejemplo, Anjuta) y compilarlo para Windows?

Behzadsh
fuente
1
mingw es la opción obvia para la compilación cruzada, pero no tengo idea de cómo integrarlo con Anjunta. Vi un tutorial sobre la integración de mingw y kdevelop aquí: forums.gentoo.org/viewtopic-t-292180.html ¿ tal vez una de las personas que recomiendan mingw sabe de una integración con el tutorial de Anjunta?
RobotHumans

Respuestas:

21

Desea realizar una compilación cruzada, que es una forma de compilar código para plataformas distintas de la que está utilizando, especialmente cuando el procesador es completamente diferente. Básicamente, necesita instalar todos los encabezados para su destino (es decir, Windows) y luego decirle al compilador que está realizando una compilación cruzada para que no realice algunas de las comprobaciones del sistema y en su lugar apuntará a directorios no estándar.

Dependiendo del idioma, puede que le resulte útil hacer una búsqueda o pregunta específica, o si está haciendo c básico puede usar las herramientas MinGW y el mismo tipo de herramientas de compilación basadas en Linux que usan gcc:

sudo apt-get install gcc-mingw32

Hay una buena guía para la compilación cruzada qt / win32 usando herramientas MinGW .

Martin Owens -doctormo-
fuente
12

Deberías echar un vistazo a MingW . Proporciona un compilador compatible con gcc para windows.

Hay una versión multiplataforma que puede usar desde Linux para generar binarios de Windows. Puede instalarlo con synaptic o ejecutando:

sudo apt-get install gcc-mingw32

Basado en eso, y con el uso del comando 'make' habitual, puede crear programas para Windows.

Entonces, cualquier IDE que le permita usar make y gcc puede usar este compilador. Por ejemplo, a continuación se explica cómo hacerlo desde el IDE de Code :: Blocks .

Little Jawa
fuente
lo suficientemente bueno para mí +1
RobotHumans
7

Las otras respuestas son correctas para el código C / C ++; deberás obtener un compilador cruzado.

Para el código C #, puede usar Monodevelop Instalar Monodevelop , ya que el compilador de Mono produce el mismo tipo de código de bytes y formato ejecutable que el compilador .NET (y viceversa). Las aplicaciones que cree con Mono se ejecutarán sin modificaciones en las máquinas con Windows siempre que permanezca dentro de las bibliotecas de clase base .NET estándar o agrupe cualquier biblioteca adicional que use con su aplicación.

RAOF
fuente
5

Quizás quieras probar Qt con Qt Creator. Gran marco para la aplicación GUI y la consola, puede compilar para Windows, Linux y OS X.

http://qt.nokia.com/

SiliconChaos
fuente
2

La forma más común de programar la aplicación de Windows Linux (ubuntu) es usando las herramientas mingw:

http://www.mingw.org/

Hay paquetes de ubuntu para mingw listos para instalar.

broma
fuente
2

De esta página :

sudo apt-get install wine mingw32 mingw32-binutils mingw32-runtime

Esto es todo lo que se necesita para la compilación cruzada básica. Intentemos:

#include <windows.h>

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
    LPSTR lpCmdLine, int nCmdShow)
{
  MessageBox(NULL,
    "Cette fenêtre prouve que le cross-compilateur est fonctionnel !",
    "Hello World", MB_OK);
  return 0;
}

Compile esto usando:

i586-mingw32msvc-g++ -o essai.exe essai.cpp

Para ejecutar, necesita la biblioteca mingw: mingwm10.dll:

gunzip -c /usr/share/doc/mingw32-runtime/mingwm10.dll.gz > mingwm10.dll

Entonces puedes lanzarlo:

wine essai.exe

El texto del cuadro de diálogo está en idioma francés con acento, para hacerlo con gvim, convierta la fuente a la página de códigos de Windows 1252 :<ESC>:e ++enc=cp1252

Otra solución, más poderosa es usar UTF-8, pero esto requiere cambiar la forma en que se manejan las cadenas.

Aubin
fuente