2008-10-08 8 views

Répondre

51

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

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

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

Ou utilisez CMake and a toolchain file pour gérer la construction. Plus difficile encore est d'ajouter des bibliothèques croisées natives. Habituellement, ils sont stockés dans /usr/cross/i586-mingw32msvc/{include,lib} et vous devez ajouter ces chemins séparément dans l'étape de configuration du processus de construction.

+1

Une chose à noter est ce que certaines bibliothèques n'aiment pas traverser décompiler. Si vos seuls choix sont un programme d'installation et une source .exe, vous pouvez installer la bibliothèque sous wine, puis copier les bibliothèques et les en-têtes dans votre chemin de recherche mingw. Je ne pourrais jamais obtenir Boost à cross-compile – Branan

+0

Pourriez-vous me guider à comment puis-je tester un tel programme compilé avec Wine? – NawaMan

+5

'wine hello.exe' devrait le faire! – richq

4

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 sur Windows, vous pouvez essayer de le compiler en utilisant Cygwin sous Windows. Cela ne vous donne cependant pas un exécutable Windows libre de toutes les dépendances envers Cygwin (votre exécutable dépend toujours du fichier cygwin.dll) - et il peut encore avoir besoin d'un portage avant que cela fonctionne. Voir http://www.cygwin.com. Si vous voulez dire que vous voulez pouvoir effectuer la compilation actuelle d'une application Windows sous Linux et produire un fichier .exe exécutable sous Windows - en utilisant votre machine Linux pour le développement et/ou la compilation, alors vous devrait regarder dans MinGW pour Linux qui est un outil pour la compilation croisée pour Windows sur Linux. Voir http://www.mingw.org/wiki/LinuxCrossMinGW.

Meilleures salutations!

4

Je vous suggère d'essayer le GUB (Grand Unified Builder) car il compile plusieurs paquets avec leurs dépendances et les assemble en un seul paquet d'installation pour 11 architectures actuellement. Vous pouvez télécharger une iso prédéfinie pour l'installation dans une machine virtuelle depuis here et suivre la source here. Il peut actuellement être utilisé pour croiser 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 - archives shar pour Linux/x86
  • Linux-64 - shar archive pour Linux/x86_64
  • Linux-ppc - archives shar pour Linux/PowerPC
  • freebsd-x86 - archives shar pour FreeBSD 4/x86
  • freebsd-64 - shar archive pour FreeBSD 6/x86_64
  • cygwin - paquets .tar.bz2 pour Cygwin/Windows32
  • bras
  • - shar archiver pour Linux/ARM (en grande partie non testé)
  • debian - archives shar pour Debian (en grande partie non testé)
Questions connexes