Domanda

Esiste un manuale per la compilazione incrociata di un'applicazione C ++ da Linux a Windows?

Proprio questo. Vorrei alcune informazioni (collegamenti, riferimenti, esempi ...) per guidarmi a farlo.

Non so nemmeno se sia possibile.

Il mio obiettivo è compilare un programma in Linux e ottenere un file .exe che posso eseguire su Windows.

È stato utile?

Soluzione

Le basi non sono troppo difficili:

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

Sostituisci apt-get con yum , o qualunque sia la tua distribuzione Linux. Ciò genererà un hello.exe per Windows.

Una volta risolto il problema, puoi utilizzare autotools e imposta CC=i586-mingw32msvc-cc

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

Oppure usa CMake e un file di toolchain per gestire la build. Ancora più difficile è l'aggiunta di librerie incrociate native. Di solito sono memorizzati in / usr / cross / i586-mingw32msvc / {include, lib} e dovresti aggiungere quei percorsi separatamente nel passaggio di configurazione del processo di compilazione.

Altri suggerimenti

Dipende da cosa intendi (non potrei davvero dirlo).

  1. Se vuoi dire che vuoi usare un'applicazione Linux esistente su Windows, puoi provare a compilarla usando Cygwin su Windows. Questo, tuttavia, non ti dà un eseguibile di Windows libero da tutte le dipendenze verso Cygwin (il tuo eseguibile dipende ancora dal file cygwin.dll ) e potrebbe ancora aver bisogno del porting prima che funzioni. Vedi http://www.cygwin.com .

  2. Se vuoi dire che vuoi essere in grado di eseguire l'effettiva compilazione di un'applicazione Windows su Linux e produrre un file .exe eseguibile su Windows, usando quindi la tua scatola Linux per lo sviluppo e / o la compilazione, allora dovresti cercare MinGW per Linux che è uno strumento per il crosscompiling per Windows su Linux. Vedi http://www.mingw.org/wiki/LinuxCrossMinGW .

Cordiali saluti!

Ti suggerisco di provare quanto segue, GUB (Grand Unified Builder) durante la compilazione incrociata diversi pacchetti con le loro dipendenze e li assembla in un unico pacchetto di installazione per attualmente 11 architetture. È possibile scaricare un iso predefinito per l'installazione in una macchina virtuale da qui e segui la fonte qui . Attualmente può essere utilizzato per compilare in modo incrociato GNU LilyPond / GNU Denemo / Inkscape e OpenOffice.org.

Le architetture di destinazione sono:

  • darwin-ppc - file tar.bz2 per Darwin 7 (MacOS 10.3) / PowerPC
  • darwin-x86 - file tar.bz2 per Darwin 8 (MacOS 10.4) / x86
  • mingw - eseguibile mingw per Windows32
  • linux-x86 - archivio shar per Linux / x86
  • linux-64 - archivio shar per Linux / x86_64
  • linux-ppc - archivio shar per Linux / PowerPC
  • freebsd-x86 - archivio shar per FreeBSD 4 / x86
  • freebsd-64 - archivio shar per FreeBSD 6 / x86_64
  • pacchetti cygwin - .tar.bz2 per Cygwin / Windows32
  • arm - archivio shar per Linux / ARM (ampiamente non testato)
  • debian - archivio shar per Debian (ampiamente non testato)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top