2008-10-08 10 views

Respuesta

51

Los fundamentos 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 

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

Una vez que su cabeza alrededor de eso, usted podría utilizar autotools, y establecer CC=i586-mingw32msvc-cc

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

O utilice CMake and a toolchain file para gestionar la construcción. Aún más difícil 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 compilación.

+1

Una cosa a destacar con esto es que algunas bibliotecas no les gusta cruzar-compilación. Si sus únicas opciones son un instalador .exe y una fuente, puede instalar la biblioteca en wine y luego copiar las bibliotecas y los encabezados en su ruta de búsqueda de mingw. Nunca pude obtener Boost para compilar de forma cruzada – Branan

+0

¿Te importaría guiarme a cómo puedo probar dicho programa compilado con Wine? – NawaMan

+5

'wine hello.exe' debería hacerlo! – richq

4

Depende de a qué te refieras (no podría decirlo).

  1. Si quiere decir que desea utilizar una aplicación existente de Linux en Windows, entonces se podría tratar de compilar usando Cygwin en Windows. Sin embargo, esto no le da un ejecutable de Windows libre de todas las dependencias hacia Cygwin (su ejecutable aún depende del archivo cygwin.dll) y aún puede necesitar algo de migración antes de que funcione. Ver http://www.cygwin.com.

  2. Si quiere decir que quiere poder realizar la compilación real de una aplicación de Windows en Linux y producir un archivo .exe que sea ejecutable en Windows, utilizando su caja Linux para el desarrollo y/o compilación, entonces debería mirar en MinGW para Linux, que es una herramienta para la compilación cruzada para Windows en Linux. Ver http://www.mingw.org/wiki/LinuxCrossMinGW.

Best regards!

4

Le sugiero que pruebe lo siguiente, GUB (Grand Unified Builder), ya que compila varios paquetes con sus dependencias y los ensambla en un único paquete de instalación para las 11 arquitecturas actuales. Puede descargar un iso preconstruido para instalarlo en una VM desde el here y seguir la fuente here. Actualmente se puede usar 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-X 86 - archivo tar.bz2 para Darwin 8 (MacOS 10.4)/x86
  • MinGW - ejecutable MinGW para Windows32
  • linux-x86 - Archivo shar para Linux/x86
  • linux-64 - Shar archivo para Linux/x86_64
  • Linux-ppc - Archivo shar para Linux/PowerPC
  • FreeBSD-x86 - archivo de Shar para FreeBSD 4/86
  • FreeBSD-64 - Shar archivo para FreeBSD 6/x86_64
  • cygwin - .tar.bz2 paquetes de Cygwin/Windows32
  • brazo - Shar archivo para Linux/ARM (en gran parte no probado)
  • debian - Shar archivo de Debian (en gran parte no probado)
Cuestiones relacionadas