He escrito algunos efectos en C ++ (g ++) usando freeglut en Linux, y los compilo con
g++ -Wall -lglut part8.cpp -o part8
Entonces, me preguntaba si es posible hacer que g ++ cree ejecutables de Windows compilados estáticos que contengan todo lo necesario.
No tengo Windows, así que sería genial si pudiera hacer eso en Linux :)
Respuestas:
mingw32 existe como paquete para Linux. Puede compilar y vincular aplicaciones de Windows con él. Hay un tutorial aquí en el foro Code :: Blocks . Tenga en cuenta que el comando cambia a
x86_64-w64-mingw32-gcc-win32
, por ejemplo.Ubuntu, por ejemplo, tiene MinGW en sus repositorios:
fuente
Una opción de compilación para Windows en Linux es a través de mingw. Encontré un tutorial muy útil aquí. .
Para instalar mingw32 en sistemas basados en Debian, ejecute el siguiente comando:
sudo apt-get install mingw32
Para compilar su código, puede usar algo como:
i586-mingw32msvc-g++ -o myApp.exe myApp.cpp
A veces, querrá probar la nueva aplicación de Windows directamente en Linux. Puedes usar vino para eso, aunque siempre debes tener en cuenta que el vino puede tener errores. Esto significa que es posible que no esté seguro de que haya un error en wine, en su programa o en ambos, por lo que solo use wine para pruebas generales.
Para instalar vino, ejecute:
sudo apt-get install wine
fuente
mingw32-binutils
ymingw32-runtime
porque son dependencias demingw32
void main(){}
etc ...), supongo que se compila en Windows pero falla en mingw, los arreglé. Intenté tambiéni586-mingw32msvc-cpp
y generó un archivo de texto con algo así como cosas para ser compiladas jajaja ... el g ++ funcionó, ¡gracias!mingw32
(marcados como "dependencias". Si los especifica, no lo harán (marcados como "manual").El método sugerido me dio un error en Ubuntu 16.04: E: No se pudo ubicar el paquete mingw32
================================================ =========================
Para instalar este paquete en Ubuntu, utilice lo siguiente:
Después de la instalación, puede usarlo:
¡Tenga en cuenta!
Para uso de 64 bits: x86_64-w64-mingw32-g ++
Para uso de 32 bits: i686-w64-mingw32-g ++
fuente
Instale un compilador cruzado, como mingw64 desde su administrador de paquetes. Luego compile de la siguiente manera: en lugar de simplemente llamar a
gcc
calli686-w64-mingw32-gcc
para Windows de 32 bits ox86_64-w64-mingw32-gcc"
para Windows de 64 bits. También usaría el--static
opción, ya que es posible que el sistema de destino no tenga todas las bibliotecas.Si desea compilar otro lenguaje, como Fortran, reemplace
-gcc
con-gfortran
en los comandos anteriores.fuente
He usado mingw en Linux para hacer ejecutables de Windows en C, sospecho que C ++ también funcionaría.
Tengo un proyecto, ELLCC, que empaqueta clang y otras cosas como una cadena de herramientas de compilación cruzada. Lo uso para compilar clang (C ++), binutils y GDB para Windows. Siga el enlace de descarga en ellcc.org para obtener binarios precompilados para varios hosts Linux.
fuente
De: https://fedoraproject.org/wiki/MinGW/Tutorial
"Consejos y trucos para usar el compilador cruzado de Windows": https://fedoraproject.org/wiki/MinGW/Tips
fuente
para Fedora es
fuente
sudo dnf groupinstall ...
también.