Come compilare per Windows su Linux con gcc / g ++?
Domanda
ho scritto alcuni effetti in C ++ (g ++) utilizzando freeglut su Linux, e li ho compilare con
g++ -Wall -lglut part8.cpp -o part8
Così mi chiedevo se è possibile avere g ++ rendere eseguibili Windows compilati statica che contiene tutto ciò che serve?
Non ho di Windows, quindi sarebbe davvero cool, se potessi fare che su Linux:)
Soluzione
mingw32 esiste come un pacchetto per Linux. È possibile attraversare-compilare e -collegamento applicazioni Windows con esso. C'è un tutorial qui al Code :: Blocks forum . Ricordate che il comando modifiche x86_64-w64-mingw32-gcc-win32
, per esempio.
Ubuntu, per esempio, ha MinGW nei suoi repository:
$ apt-cache search mingw
[...]
g++-mingw-w64 - GNU C++ compiler for MinGW-w64
gcc-mingw-w64 - GNU C compiler for MinGW-w64
mingw-w64 - Development environment targeting 32- and 64-bit Windows
[...]
Altri suggerimenti
Una possibilità di compilare per Windows a Linux è via MinGW. Ho trovato molto utile tutorial di qui .
Per installare mingw32 su sistemi basati su Debian, eseguire il seguente comando:
sudo apt-get install mingw32 mingw32-binutils mingw32-runtime
Per compilare il codice, è possibile usare qualcosa come:
i586-mingw32msvc-g++ -o myApp.exe myApp.cpp
Ti volte vuole testare la nuova applicazione di Windows direttamente in Linux. È possibile utilizzare il vino per questo, anche se si dovrebbe sempre tenere a mente che il vino potrebbe avere bug. Questo significa che si potrebbe non essere sicuri che un bug è nel vino, il vostro programma, o entrambi, in modo da utilizzare solo vino per la prova generale.
Per installare il vino, eseguire:
sudo apt-get install wine
metodo suggerito mi ha dato errore su Ubuntu 16.04: E: Impossibile trovare il pacchetto mingw32
=============================================== ============================
Per installare questo pacchetto su Ubuntu si prega di utilizzare seguente:
sudo apt-get install mingw-w64
Dopo l'installazione si può utilizzare:
x86_64-w64-mingw32-g++
Si prega di notare!
Per l'uso a 64 bit: x86_64-W64-mingw32-gc ++
Per l'uso a 32 bit: i686-W64-mingw32-g ++
Installare un cross compiler, come mingw64 dal vostro gestore di pacchetti.
Quindi compilare nel seguente modo: invece di limitarsi a chiamare gcc
chiamata i686-w64-mingw32-gcc
per Windows a 32 bit o x86_64-w64-mingw32-gcc"
per Windows a 64 bit. Vorrei anche utilizzare l'opzione --static
, come il sistema di destinazione non può avere tutte le librerie.
Se vuoi compilare altra lingua, come Fortran, sostituire -gcc
con -gfortran
nei comandi precedenti.
Ho usato mingw su Linux per rendere eseguibili di Windows in C, ho il sospetto C ++ avrebbe funzionato pure.
Ho un progetto, ELLCC, che i pacchetti clang e altre cose come una catena strumento di cross compiler. Io lo uso per compilare clang (C ++), binutils, e GDB per Windows. Seguite il link di download alla ellcc.org per binari precompilati per diversi host Linux.
Da: https://fedoraproject.org/wiki/MinGW/Tutorial
A partire da Fedora 17 è possibile creare facilmente file binari (cross-compilazione) per le Win32 e Win64 obiettivi. Questo è realizzato utilizzando la toolchain mingw-W64: http://mingw-w64.sf.net/ . L'utilizzo di questo toolchain permette di costruire i binari per i seguenti linguaggi di programmazione: C, C ++, Objective-C, Objective-C ++ e Fortran
.
"Consigli e trucchi per utilizzare il cross-compilatore di Windows": https://fedoraproject.org/wiki / MinGW / Consigli
per Fedora è
sudo yum groupinstall -y "MinGW cross-compiler"