Vous êtes ici

Tutoriel : cross-compiler sous Linux pour Windows (Vala)

Objectif : compiler une application Vala/GTK+ sous Linux à destination de Windows©.

Nous avons une application codée en Vala, utilisant GTK+2 pour son rendu graphique :

Nous désirons en produire une version Windows sans modifier le code source ni disposer d'une machine Windows.

Pré-requis

Une distribution Linux Debian ou Ubuntu, avec Vala installé.

Pour installer Vala, reportez-vous à cet article, partie 1).

1) Installer la chaîne de compilation

- Installez le compilateur GCC pour Windows (appelé MinGW) :

apt-get install mingw32

- Téléchargez GTK+ 2.24 pour Windows :
gtk+-bundle_2.24.10-20120208_win32.zip (23,5 Mo)

(ps : Créez un dossier nommé "gtk-win32" à l'emplacement de votre choix, mettez-y l'archive ZIP et extrayez-la avec :
unzip gtk+-bundle_2.24.10-20120208_win32.zip)


- Adapter GTK+ à son emplacement :
Dans un terminal, déplacez-vous dans le dossier "gtk-win32" que vous venez de créer. Par exemple, si vous avez extrait dans "/opt/gtk-win32", tapez :
cd /opt/gtk-win32
puis faites :
find -name '*.pc' | while read pc; do sed -e "s@^prefix=.*@prefix=$PWD@" -i "$pc"; done

2) Compiler

- Nous allons indiquer à "pkg-config" de localiser les librairies GTK+ dans notre chemin spécial. Par exemple, si vous avez extrait dans "/opt/gtk-win32", tapez :
export PKG_CONFIG_PATH=/opt/gtk-win32/lib/pkgconfig

Nous sommes prêts ! Nous allons ici nous servir de ce code source pour l'exemple.

- Compiler l'exemple :
valac --cc=i586-mingw32msvc-gcc --pkg gtk+-2.0 -o testGTK2.exe testGTK2.vala

Si tout s'est bien passé, un nouvel exécutable testGTK2.exe a dû apparaître.
Celui-ci ne se lancera pas sous Linux, car il est destiné à Windows !

3) Distribuer

- Créez un dossier contenant l'exécutable et l'ensemble des .dll Windows. Par exemple, si vous aviez extrait dans "/opt/gtk-win32" :
mkdir ~/distri
cp testGTK2.exe ~/distri
cp /opt/gtk-win32/bin/*.dll ~/distri

- C'est prêt à fonctionner ! Transférez ce dossier sur un poste Windows. Double-cliquez sur l'exécutable et...

Voilà !

Ajouter un commentaire

Filtered HTML

  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
  • Tags HTML autorisés : <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Les lignes et les paragraphes vont à la ligne automatiquement.

Plain text

  • Aucune balise HTML autorisée.
  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
  • Les lignes et les paragraphes vont à la ligne automatiquement.
CAPTCHA
Cette question permet de vérifier que vous êtes un humain et d'éviter les commentaires automatiques.
Image CAPTCHA
Enter the characters shown in the image.