web-dev-qa-db-fra.com

Manuel pour la compilation croisée d'une application C ++ de Linux à Windows?

Existe-t-il un manuel pour la compilation croisée d'une application C++ de Linux à Windows?

Juste ça. Je voudrais des informations (liens, références, exemples ...) pour me guider pour le faire.

Je ne sais même pas si c'est possible.

Mon objectif est de compiler un programme sous Linux et d'obtenir un fichier .exe que je peux exécuter sous Windows.

40
Pablo Herrero

Les bases ne sont pas trop difficiles:

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

Remplacer apt-get avec yum, ou quelle que soit votre distribution Linux utilise. Cela générera un hello.exe Pour les fenêtres.

Une fois que vous avez eu la tête autour de cela, vous pouvez utiliser AutoTools et définir CC=i586-mingw32msvc-cc

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

Ou utiliser CMAKE et un fichier Toolchain pour gérer la construction. Plus difficile d'ajouter encore des bibliothèques autochtones. Habituellement, ils sont stockés dans /usr/cross/i586-mingw32msvc/{include,lib} Et vous auriez besoin d'ajouter ces chemins séparément dans l'étape de configuration du processus de construction.

53
richq

Cela dépend de ce que vous voulez dire (je ne pouvais pas vraiment dire).

  1. Si vous voulez dire que vous souhaitez utiliser une application Linux existante sous Windows, vous pouvez essayer de la compiler à l'aide de Cygwin sous Windows. Cela ne vous donne toutefois pas d'exécutable Windows exempt de toutes les dépendances en direction de Cygwin (votre exécutable dépend toujours du cygwin.dll Fichier) - et cela peut encore avoir besoin d'un portage avant qu'il ne fonctionnera. Voir http://www.cygwin.com .

  2. Si vous voulez dire que vous souhaitez pouvoir effectuer la compilation réelle d'une application Windows sur Linux et produire un fichier .exe exécutable sous Windows - à l'aide de votre boîte Linux pour le développement et/ou la compilation, vous devriez alors examiner - MINGW pour Linux, qui est un outil de croisement croisé pour Windows sur Linux. Voir http://www.mingw.org/wiki/linuxcrossw .

Meilleures salutations!

6
Anders Hansson

Je vous suggère de donner ce qui suit, [~ # ~ # ~] gub [~ # ~] (Grand Unified Builder) A essayer tel qu'il compile plusieurs packages avec leurs dépendances et les assemble dans un seul package d'installation pour actuellement 11 architectures. Vous pouvez télécharger un ISO précieux pour l'installation dans A VM à partir de ici et suivez la source ICI . Il peut actuellement être utilisé pour traverser Compiler GNU LilyPond/GNU Denemo/Inkscape et OpenOffice.org.

Les architectures cibles sont:

  • darwin-PPC - TAR.BZ2 Fichier pour Darwin 7 (MacOS 10.3)/PowerPC
  • dARWIN-X86 - TAR.BZ2 Fichier pour Darwin 8 (MacOS 10.4)/X86
  • mINGW - MINGW exécutable pour Windows32
  • linux-X86 - Archives Shar pour Linux/X86
  • linux-64 - Archives Shar pour Linux/X86_64
  • linux-PPC - Archives Shar pour Linux/PowerPC
  • freeBSD-X86 - Archives Shar pour FreeBSD 4/X86
  • freeBSD-64 - Archives Shar pour FreeBSD 6/X86_64
  • cygwin - Packages .TAR.BZ2 pour Cygwin/Windows32
  • arm - Archives Shar pour Linux/Bras (largement non testée)
  • debian - Archives Shar pour Debian (largement non testée)
4
1.01pm