40 votes

Manuel pour Cross-Compiler une application c++ à partir de linux à windows?

Juste que. J'aimerais quelques 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 obtenir un .fichier exe que je peut fonctionner sous windows.

53voto

richq Points 29694

Les bases ne sont pas trop difficile:

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 quel que soit votre distribution Linux utilise. Qui va générer un hello.exe pour Windows.

Une fois que vous obtenez votre tête autour de cela, vous pouvez utiliser les autotools, et définissez CC=i586-mingw32msvc-cc

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

Ou de l'utilisation de CMake et une chaîne de traitement de fichier pour gérer la construction. Il est encore plus difficile en ajoutant natif de la croix-bibliothèques. Habituellement, ils sont stockés dans /usr/cross/i586-mingw32msvc/{include,lib} et vous auriez besoin d'ajouter ces chemins séparément dans la configuration de l'étape du processus de construction.

6voto

Anders Hansson Points 2362

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

  1. Si vous voulez dire que vous souhaitez utiliser une application Linux sur Windows, alors vous pouvez essayer de le compiler en utilisant cygwin sous Windows. Toutefois, cela ne vous donne pas un exécutable Windows gratuit de toutes les dépendances vers cygwin (votre exécutable dépend toujours de l'cygwin.dll) - et il peut encore besoin de quelques portage avant qu'il fonctionne. Voir http://www.cygwin.com

  2. Si vous voulez dire que vous voulez être en mesure d'effectuer la compilation d'une application Windows sur Linux et produire un .exe fichier est exécutable sur Windows - ainsi, à l'aide de votre Linux pour le développement et/ou à la compilation, alors vous devriez regarder dans MinGW pour Linux, qui est un outil pour crosscompiling pour Windows sur Linux. Voir http://www.mingw.org/wiki/LinuxCrossMinGW

En ce qui concerne meilleur!

4voto

1.01pm Points 759

Je vous suggère de donner au suivant, GUB (Grand Unified Builder) d'essayer car il cross-compile plusieurs paquets avec leurs dépendances et les assemble en un seul package d'installation pour actuellement 11 architectures. Vous pouvez télécharger une prêts à l'emploi de l'iso pour l'installation dans une machine virtuelle à partir d' ici et suivez la source ici. Il peut actuellement être utilisé pour cross-compiler GNU LilyPond/ GNU Denemo / Inkscape et OpenOffice.org.

Les architectures cibles sont:

  • darwin-ppc - tar.fichier bz2 pour Darwin 7 (MacOS 10.3)/PowerPC
  • darwin-x86 - tar.fichier bz2 pour Darwin 8 (mac os 10.4)/x86
  • mingw - mingw exécutable pour Windows32
  • linux-x86 - shar archive pour Linux/x86
  • linux-64 - shar archive pour Linux/x86_64
  • linux-ppc - shar archive pour Linux/PowerPC
  • freebsd-x86 - shar archive pour FreeBSD 4/x86
  • freebsd-64 - shar archive pour FreeBSD 6/x86_64
  • cygwin - .le goudron.bz2 paquets pour Cygwin/Windows32
  • bras - shar archive pour Linux/ARM (en grande partie non testé)
  • debian - shar archive Debian (en grande partie non testé)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X