Pregunta

¿Existe un manual para compilar de forma cruzada una aplicación C ++ de Linux a Windows?

Solo eso. Me gustaría alguna información (enlaces, referencias, ejemplos ...) que me guíe para hacer eso.

Ni siquiera sé si es posible.

Mi objetivo es compilar un programa en Linux y obtener un archivo .exe que puedo ejecutar en Windows.

¿Fue útil?

Solución

Los conceptos básicos no son demasiado difíciles:

sudo apt-get install mingw32    
cat > main.c <<EOF
int main()
{
  printf("Hello, World!");
}
EOF
i586-mingw32msvc-cc main.c -o hello.exe

Reemplace apt-get con yum , o lo que sea que use su distribución de Linux. Eso generará un hello.exe para Windows.

Una vez que entienda eso, puede usar autotools y establece CC=i586-mingw32msvc-cc

CC=i586-mingw32msvc-cc ./configure && make

O use CMake y un archivo de herramientas para administrar la compilación. Más difícil aún es agregar bibliotecas cruzadas nativas. Por lo general, se almacenan en / usr / cross / i586-mingw32msvc / {include, lib} y deberá agregar esas rutas por separado en el paso de configuración del proceso de construcción.

Otros consejos

Depende de lo que quieras decir (realmente no podría decirlo).

  1. Si quiere decir que quiere usar una aplicación Linux existente en Windows, podría intentar compilarla utilizando Cygwin en Windows. Sin embargo, esto no le otorga un ejecutable de Windows libre de todas las dependencias hacia Cygwin (su ejecutable aún depende del archivo cygwin.dll ), y puede que necesite un poco de adaptación antes de que funcione. Consulte http://www.cygwin.com .

  2. Si quiere decir que desea poder realizar la compilación real de una aplicación de Windows en Linux y generar un archivo .exe que sea ejecutable en Windows, use su caja de Linux para el desarrollo y / o la compilación. debe buscar MinGW para Linux, que es una herramienta para la compilación cruzada de Windows en Linux. Consulte http://www.mingw.org/wiki/LinuxCrossMinGW .

Saludos cordiales!

Le sugiero que pruebe lo siguiente, GUB (Grand Unified Builder) una vez que se compile varios paquetes con sus dependencias y los ensambla en un solo paquete de instalación para actualmente 11 arquitecturas. Puede descargar una iso precompilada para instalarla en una máquina virtual desde aquí y siga la fuente aquí . Actualmente se puede utilizar para compilar de forma cruzada GNU LilyPond / GNU Denemo / Inkscape y OpenOffice.org.

Las arquitecturas de destino son:

  • darwin-ppc - archivo tar.bz2 para Darwin 7 (MacOS 10.3) / PowerPC
  • darwin-x86 - archivo tar.bz2 para Darwin 8 (MacOS 10.4) / x86
  • mingw - ejecutable mingw para Windows32
  • linux-x86 - archivo shar para Linux / x86
  • linux-64 - archivo shar para Linux / x86_64
  • linux-ppc - archivo shar para Linux / PowerPC
  • freebsd-x86 - archivo shar para FreeBSD 4 / x86
  • freebsd-64 - archivo shar para FreeBSD 6 / x86_64
  • cygwin - .tar.bz2 paquetes para Cygwin / Windows32
  • arm - archivo shar para Linux / ARM (en gran parte no probado)
  • debian - archivo shar para Debian (en gran parte no probado)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top