Question

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

Juste ça. Je voudrais quelques informations (liens, références, exemples ...) pour me guider dans cette démarche.

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.

Était-ce utile?

La solution

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

Remplacez apt-get par yum , ou ce que votre distribution Linux utilise. Cela générera un hello.exe pour Windows.

Une fois que vous avez compris, vous pouvez utiliser autotools . et définissez CC = i586-mingw32msvc-cc

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

Ou utilisez CMake et un fichier d'outils pour gérer la construction. Il est encore plus difficile d’ajouter des bibliothèques croisées natives. Ils sont généralement stockés dans / usr / cross / i586-mingw32msvc / {include, lib} et vous devrez ajouter ces chemins séparément dans l'étape de configuration du processus de construction.

Autres conseils

Cela dépend de ce que vous voulez dire (je ne saurais le dire).

  1. Si vous voulez utiliser une application Linux existante sous Windows, essayez de la compiler en utilisant Cygwin sous Windows. Cependant, cela ne vous donne pas un exécutable Windows libre de toutes dépendances envers Cygwin (votre exécutable dépend toujours du fichier cygwin.dll ) - et il peut encore nécessiter un portage pour fonctionner. Voir http://www.cygwin.com .

  2. Si vous voulez pouvoir effectuer la compilation d'une application Windows sous Linux et générer un fichier .exe exécutable sous Windows, utilisez donc votre machine Linux pour le développement et / ou la compilation, puis vous devriez vous renseigner sur MinGW pour Linux, qui est un outil de compilation croisée pour Windows sous Linux. Voir http://www.mingw.org/wiki/LinuxCrossMinGW .

Cordialement!

Je vous suggère d'essayer GUB (Grand Unified Builder) lors de la compilation croisée. plusieurs packages avec leurs dépendances et les assemble en un seul package d’installation pour 11 architectures. Vous pouvez télécharger un fichier ISO pré-construit pour l’installation sur une machine virtuelle à partir de ici et suivez la source ici . Il peut actuellement être utilisé pour compiler de manière croisée GNU LilyPond / GNU Denemo / Inkscape et OpenOffice.org.

Les architectures cibles sont:

  • darwin-ppc - fichier tar.bz2 pour Darwin 7 (MacOS 10.3) / PowerPC
  • darwin-x86 - fichier tar.bz2 pour Darwin 8 (MacOS 10.4) / x86
  • mingw - exécutable mingw pour Windows32
  • linux-x86 - archive partagée pour Linux / x86
  • linux-64 - archive partagée pour Linux / x86_64
  • linux-ppc - archive partagée pour Linux / PowerPC
  • freebsd-x86 - archive shar pour FreeBSD 4 / x86
  • freebsd-64 - archive partagée pour FreeBSD 6 / x86_64
  • cygwin - Packages .tar.bz2 pour Cygwin / Windows32
  • arm - archive shar pour Linux / ARM (en grande partie non testée)
  • debian - archive shar pour Debian (non encore testée)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top