Pour pouvoir utiliser le système d'exploitation Debian à partir de son PC Windows, sans avoir à acquérir de matériel supplémentaire ni modifier son système Windows, on peut installer une machine virtuelle avec une distribution Debian. On utilise pour cela le logiciel de virtualisation de systèmes d'exploitation,VirtualBox.
On utilise l'interface graphique du système d'exploitation Windows avec les outils Putty et WinSCP pour piloter le serveur virtuel, et on utilise le système d'exploitation Debian comme serveur virtuelle. Cela donne tout le confort nécessaire pour tester les capacités révolutionnaires de développement informatique que constitue la distribution Debian, un système d'exploitation universelle, déployable physiquement sur la plus part des architectures matérielles.
Télécharger l'exécutable Putty à partir du site http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
Télécharger l'exécutable WinSCP à partir du site http://winscp.net/eng/download.php
Il convient de placer des exécutables dans un répertoire prévu pour
contenir des exécutables. Dans une distribution Linux, un tel
répertoire s'appellerait /bin
, mais nous sommes sous
Windows XP. On crée le répertoire C:\exe
qui joura ce rôle. L'interface graphique doit pouvoir pemettre à
l'utilisateur de lancer ces exécutables par simple clique. Cela se fait
en utilisant des raccourcis et un répertoire les contenants qui se
déroule comme un menu, appelé barre d'outils. On crée le répertoire C:\outils
qui joura ce rôle, et on ajoute ce répertoire comme barre d'outils.
Télécharger une petite image amorçable pour CD à partir du site http://www.debian.org/ et déployez-la sur un CD. Cela constitura un CD bootable qui permettra d'installer Debian en téléchargeant les paquets logiciels via Internet.
Télécharger VirtualBox pour hôte Windows à partir du site http://www.virtualbox.org/ et installez-le.
Lancer Virtualbox, puis créer une machine virtuelle avec 384 Mo de mémoire vive et un disque dur de 4 Go et comme interface réseau, un pont avec l'interface réseau utilisée.
Insérer le CD dans le lecteur, démarrer la machine virtuelle, et installer Debian sur la machine virtuelle avec un minimum de paquets.
Mettre le système Debian à jours :
apt-get update
apt-get dist-upgrade
Ajouter le paquet ssh qui permet les connections distantes sécurisées :
apt-get install ssh
Modifier le fichier etc/network/interface
comme suit,
où gateway est l'adresse du routeur (ou de la livebox), netmask est le
masque de sous-réseau, et address est une addresse libre affectée à la
machine virtuelle :
etc/network/interface
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.201
netmask 255.255.255.0
gateway 192.168.1.1
Arrêter :
halt
init 0
shutdown -h 0
Rebooter :
reboot
shutdown -r 0
Ouvrir une session avec WinSCP en saisissant l'adresse IP : 192.168.1.201, et.en modifiant la configuration en WinSCP|Préférence|Explorer.
Ouvrir une session avec Putty en précisant l'adresse IP : 192.168.1.201, et en modifiant la configuration : Windows|Translation|Receveid_data_assumed_to_be_in_which_character_set|UTF8.
Il est conseiller de se connecter comme simple utilisateur. Comme cela il n'est pas possible de modifier ou d'effacer les fichiers nécessaires au bon fonctionnement du système. On peut ouvrir une session root dans la continuité en tapant la commande suivante :
su
Le mot de passe de root vous sera demandé. Le prompt se termine par le caractère # qui signifit que vous avez les droits root. Quitter la session root de la même façon que l'on quitte une session avec la commande suivante :
exit
Si on modifie l'adresse MAC de la carte réseau de la machine virtuelle, en modifiant sa configuration dans VirtualBox, celle-ci n'est plus reconnue par le système Debian, car l'adresse MAC est mentionnée dans le fichier suivant :
/etc/udev/rules.d/70-persistent-net.rules
Il faut effacer ce fichier puis rebooter la machine virtuelle, le fichier sera recréé avec la bonne adresse MAC.
Ouvrir une fenêtre de commande MS-DOS. Positionnez-vous dans le
dossier C:\Program Files\Oracle\VirtualBox
et lancer la
commande
vboxmanage clonevdi nom_complet_du_fichier_debian1.vdi n
om_complet_du_fichier_debian2.vdi
Cela clône le disque debian1.vdi
en le disque debian2.vdi
.
Créer une seconde machine virtuelle et l'associer à un nouveau disque vdi existant. (Cliquer sur le symbole "Dossier" à droite, puis sur le bouton "Ajouter"). On modifie les paramètres réseau de la machine virtuelle en choisissant comme interface réseau, un pont avec l'interface réseau utilisée et avec une addresse MAC modifiée.
Lancer cette nouvelle machine, effacer le fichier contenant l'adresse MAC, et rebooter-là :
rm /etc/udev/rules.d/70-persistent-net.rules
reboot
Modifier l'adresse IP de la machine virtuelle dans /etc/network/interface
Modifier le nom de la machine virtuelle dans
/etc/hostname
et dans /etc/hosts
Rebooter la machine virtuelle.
Pour écrire un programme il nous faut un éditeur pratique, nous avons besoin de l'éditeur Notepad++. C'est un traitement de texte avec coloration syntaxique pour différents langages de programmation. Télécharger Notepad++ à partir du site http://notepad-plus-plus.org/fr/download et installez-le sur votre PC Windows.
Lancer WinSCP, Ajouter dans View|Préférences|Editors le nouvel éditeur Notepad++ en précisant dans "Editor autoselection" les extensions suivantes : *.c; *.cpp; *.h, et placer-le en premier (bouton up).
Pour compiler un programme C, nous avons besoin du compilateur gcc, et pour compiler un programme C++, nous avons besoin en plus du compilateur g++. Connectez-vous root et exécuter la commande :
apt-get install gcc g++
ou bien
apt-get install gcc
apt-get install g++
Connectez-vous avec WinSCP avec un login utilisateur. Le répertoire
courant est alors /home/<user>
Créer un fichier hello.c et Hello.cpp
dans votre répertoire d'utilisateur, éditer-les avec NotePad++ (clique
droit Edit), et écrire les programmes comme indiqués dans le tableau.
Lors de la compilation, des fichiers objects hello.o
et Hello.o
peuvent être créés puis linkés pour produires les exécutables hello
et Hello
(On a différencié par une majuscule, pour que
les fichiers objects des deux programmes, dont le nom par défaut est le
même que celui du source correspondant avec comme extenssion "o", ne se
supperposent pas).
Connectez-vous avec Putty avec un login utilisateur. Le répertoire
courant est alors /home/<user>
et les fichiers
sources y sont présents.
Compiler le programme C ou C++ en tapant les commandes comme indiqués dans le tableau :
Langage C Langage C++ Programmationhello.c
#include <stdio.h>
int main () {
printf ("Bonjour\n");
return 0;
}
Hello.cpp
#include <iostream>
using namespace std;
int main () {
cout << "Bonjour" << endl;
return 0;
}
Pour compiler en créant les fichiers objects
gcc -c hello.c
gcc hello.o-o hello
g++ -c Hello.cpp
g++ Hello.o -o Hello Pour compiler directement sans créer les fichiers objectsgcc hello.c -o hello
g++ Hello.cpp -o Hello
Pour lancer l'exécutable./hello
./Hello
Pour exécutez hello, vous devrez saisir ./hello
et non simplement hello
car la plupart
des utilisateurs n'ont pas le répertoire en cours dans leur chemin de
recherche.
L'option -c (c pour compile) précise le fichier source qui doit
être compilé en un fichier object, sans effectuer de linkage.
L'option -o (o pour out) précise le nom du fichier qui sera créé, comme
exécutable (par défaut "a.out"), ou bien comme fichier object (par
défaut de même nom que celui du source avec l'extension "o")
Il n'est pas nécessaire qu'il y ait un espace entre l'option et le nom
de fichier cible. Ainsi la commande g++ -chello.c -oHELLO
va compiler le source hello.c
en le
fichier object HELLO
.
Pour voir les librairies nécessaires au fonctionnementldd hello
linux-gate.so.1 => (0xb77d9000)
libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7678000)
/lib/ld-linux.so.2 (0xb77da000)
ldd Hello
linux-gate.so.1 => (0xb77cf000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb76db000)
libm.so.6 => /lib/i686/cmov/libm.so.6 (0xb76b5000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb76a7000)
libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb754c000)
/lib/ld-linux.so.2 (0xb77d0000) Autre commande
d'investigationobjdump -p hello | grep "lib"
NEEDED libc.so.6
required from libc.so.6:objdump -p Hello | grep "lib"
NEEDED libstdc++.so.6
NEEDED libm.so.6
NEEDED libgcc_s.so.1
NEEDED libc.so.6
required from libstdc++.so.6:
required from libc.so.6:
Prenons un exemple plus complexe composé de 3 fichiers sources d'extension "cpp" et de 2 fichiers entêtes d'extension "h" :
A.h
|
B.h
|
main.cpp
|
||||
A.cpp
|
B.cpp
|
Voici 3 façons de compiler ce programme en un exécutable prog
:
Compilation directeg++ main.cpp A.cpp B.cpp -o prog
Compilation en créant les fichiers objectsg++ -c main.cpp
g++ -c A.cpp
g++ -c B.cpp
g++ main.o A.o B.o -o prog Compilation en créant les fichiers objects sous d'autres nomsg++ -c main.cpp -o MAIN
g++ -c A.cpp -o A
g++ -c B.cpp -o B
g++ MAIN A B -o prog
Pour exécuter le programme sur l'entré 3 4 1, on peut tapez la commande suivante :
echo "3 4 1" | ./prog
et vous verrez s'afficher le résultat : K=(5,36,4)
Les librairies utilisées par le programme prog
peuvent être affichées :
Pour voir les librairies nécessaires au fonctionnementldd prog
linux-gate.so.1 => (0xb77cf000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb76db000)
libm.so.6 => /lib/i686/cmov/libm.so.6 (0xb76b5000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb76a7000)
libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb754c000)
/lib/ld-linux.so.2 (0xb77d0000)
Autre commande
d'investigationobjdump -p prog | grep "lib"
NEEDED libstdc++.so.6
NEEDED libm.so.6
NEEDED libgcc_s.so.1
NEEDED libc.so.6
required from libm.so.6:
required from libc.so.6:
required from libstdc++.so.6:
Cygwin est un mini système d'exploitation UNIX qui s'installe en surcouche sur un système Windows.
Cygwin est également un environnement de développement pour Windows. Les distributions de logiciels fonctionnant sous UNIX considèrent Cygwin comme un OS à part entière et intègrent la possibilité de générer un Makefile permettant la compilation de projets Unix sous Cygwin avec la procédure classique :
./configure ; make ; make install
Les exécutables compilés avec gcc requièrent la présence de la DLL cygwin1.dll pour s'exécuter. On pourra placer cette DLL dans le répertoire C:\Windows. Si l'application développée n'utilise aucune fonctionnalité Unix (les signaux, par exemple) alors elle peut être compilée avec l'option -mno-cygwin, pour produire un exécutable indépendant de cette DLL, une application purement Windows.
Cygwin est livré avec d'autres outils pour les développeurs : make bien sûr, mais aussi des langages de scripts comme Perl, Python et Ruby.
Il est également possible d’utiliser Cygwin pour se connecter à un ordinateur distant. Mais le montage d'un serveur sshd sur cygwin est un peu compliqué du fait que les serveurs doivent être montés comme des services Windows.
Cygwin respecte toutes les normes d’UNIX. Le répertoire Cygwin respecte le même type de hiérarchie que celui des environnements UNIX. On retrouve ainsi à la racine de Cygwin les composants suivants :
Répertoire | Description |
---|---|
/bin | Ensemble des dll et programmes |
/tmp | Contient les données temporaires des différents programmes(parfois, /tmp est un lien symbolique vers /var/tmp) |
/etc | Contient les fichiers de configuration généraux de tous les programmes du système |
/etc/bashrc | contient les alias et fonctions globales au système |
/etc/profile | positionne globalement les variables d’environnement et lance les programmes de démarrage communs |
/home | Est réservé à l’hébergement des comptes des utilisateurs (un sous-dossier par personne) |
/lib | Ensemble des librairies |
/sbin | Contient des commandes nécessaires lors du démarrage de Cygwin, mais en général inutiles pour les utilisateurs |
/usr | Contient tous les programmes et fichiers de données qui ont pour caractéristiques de ne pas être nécessaires au démarrage de la machine |
/usr/local | Contient les programmes compilés par l’utilisateur |
/var | Contient des données mises à jour par différents programmes durant le fonctionnement du système |
Cygwin est actuellement maintenu par les employés de Red Hat et d'autres programmeurs.
Télécharger le setup.exe à l'URL http://www.cygwin.com/ qui permet d'installer et de compléter l'installation à volonté de Cygwin via Internet
Il convient de placer des programmes d'installation dans un
répertoire prévu à cette efffet. On crée le répertoire C:\Install
qui joura ce rôle, et un sous-répertoire C:\Install\Cygwin
qui contiendra le setup.exe ainsi que tous les paquets d'installations
récupérés via internet.
A chaque lancement du setup.exe ces paramètres seront proposés par défaut, et on pourra compléter l'installation avec d'autres paquets proposés, téléchargeable automatiquement via l'Intenet.
Pour lancer le shell cygwin, menu
Programmes|Cygwin|Cygwin_Bash_Shell ou lancer le script C:\cygwin\cygwin.bat
Le répertoire par défaut est /home/<user>
et correspond au répertoire C:\cygwin\home\<user>
Copiez-y les fichiers sources c-a-d les fichiers d'extension "cpp" et
"h". Cela peut se faire par un glisser-déplacer entre les fenêtres de
WinSCP et de l'explorateur Windows, ou plus simplement, en ligne de
commande :
scp dmabboux@192.168.1.201:*.cpp .
scp dmabboux@192.168.1.201:*.h .
L'exemple précédent peut être compilé :
g++ A.cpp B.cpp main.cpp -o prog
Les librairies utilisées par le programme prog.exe
peuvent être affichées :
Pour voir les librairies nécessaires au fonctionnementldd prog
ntdll.dll => /cygdrive/c/WINDOWS/system32/ntdll.dll (0x7c910000)
kernel32.dll => /cygdrive/c/WINDOWS/system32/kernel32.dll (0x7c800000)
cygwin1.dll => /cygdrive/c/WINDOWS/cygwin1.dll (0x61000000)
ADVAPI32.DLL => /cygdrive/c/WINDOWS/system32/ADVAPI32.DLL (0x77da0000)
RPCRT4.dll => /cygdrive/c/WINDOWS/system32/RPCRT4.dll (0x77e50000) Autre commande d'investigationobjdump -p prog | grep "DLL Name "
DLL Name: cygwin1.dll
DLL Name: KERNEL32.dll
L'exemple précédent peut être compilé en intégrant cygwin1.dll dans l'exécutable :
g++ A.cpp B.cpp main.cpp -o prog
-mno-cygwin
Les librairies utilisées par le programme prog.exe
sont alors :
Pour voir les librairies nécessaires au fonctionnementldd prog
ntdll.dll => /cygdrive/c/WINDOWS/system32/ntdll.dll (0x7c910000)
kernel32.dll => /cygdrive/c/WINDOWS/system32/kernel32.dll (0x7c800000)
msvcrt.dll => /cygdrive/c/WINDOWS/system32/msvcrt.dll (0x77be0000) Autre commande d'investigationobjdump -p prog | grep "DLL Name "
DLL Name: msvcrt.dll
DLL Name: msvcrt.dll
DLL Name: KERNEL32.dll
(Noter que avec cygwin l'extension "exe" est implicite pour les fichiers exécutables)
Msys fait partie du projet MinGW qui signifie Minimal Gnu for Windows. C'est un mini système Linux qui s'installe en surcouche sur un système Windows, et qui reprend quelques commandes MS-DOS.
Msys est un environnement de développement pour Windows. Comme pour cygwin, les distributions de logiciels fonctionnant sous Linux peuvent s'installer avec la procédure classique :
./configure ; make ; make install
L'installation de Msys peut se faire automatiquement en installant l'IDE (Integrated Development Environment) Wascana, c'est une plateforme de développement.
Pour lancer le shell Msys, menu Programmes|Wascana|Wascana_Shell ou
lancer le script C:\Wascana\msys\msys.bat
Le répertoire par défaut est /home/<user>
et correspond au répertoire C:\Wascana\msys\home\<user>
Copiez-y les fichiers sources c-a-d les fichiers d'extension "cpp" et
"h". Cela peut se faire par un glisser-déplacer entre les fenêtres de
WinSCP et de l'explorateur Windows, ou plus simplement, en ligne de
commande :
scp dmabboux@192.168.1.201:*.cpp .
scp dmabboux@192.168.1.201:*.h .
Les paramètres réseaux s'obtiennent avec la commande ipconfig (et non ifconfig), en effet, certaine commandes MS-DOS sont intégrées dans le shell Msys.
L'exemple précédent peut être compilé :
g++ A.cpp B.cpp main.cpp -o prog
Pour voir les librairies nécessaires au fonctionnementobjdump -p prog | grep "DLL Name"
DLL Name: KERNEL32.dll
DLL Name: msvcrt.dll
DLL Name: msvcrt.dll
Télécharger Wascana à partir du site http://wascana.sourceforge.net/
(wascana-1.0-setup.exe) et installez-le
en choisissant comme répertoire d'install C:\Wascana.
Wascana
comprend les composantes suivantes
: Eclipse Helios C/C++
IDE, Java JRE, Msys, MinGW (gcc, g++, gdb, make...)
Pour lancer l'IDE Wascana, menu Programmes|Wascana|Wascana_Eclipse
Choisissez comme workspace par défaut : C:\Wascana\workspace
Créer un nouveau projet C++, et choisissez "Hello World C++ Project". Deux compilateurs sont proposés : Cygwin GCC ou MinGW GCC. (Wascana propose le compilateur Cygwin GCC que si Cygwin a été installé.)
Lors de la compilation, la console de Wascana affiche les commandes de compilation qui sont exécutées :
Avec le compilateur MinGW :
g++ -O0 -g3 -Wall -c -fmessage-length=0 -osrc\B.o ..\src\B.cpp
g++ -O0 -g3 -Wall -c -fmessage-length=0 -osrc\Dom.o ..\src\Dom.cpp
g++ -O0 -g3 -Wall -c -fmessage-length=0 -osrc\A.o ..\src\A.cpp
g++ -oDom.exe src\Dom.o src\B.o src\A.o
Avec le compilateur Cygwin :
g++ -O0
-g3 -Wall -c
-fmessage-length=0 -MMD
-MP -MF"src/A.d" -MT"src/A.d" -o"src/A.o"
"../src/A.cpp"
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD
-MP -MF"src/B.d" -MT"src/B.d" -o"src/B.o"
"../src/B.cpp"
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD
-MP -MF"src/Dom.d" -MT"src/Dom.d" -o"src/main.o"
"../src/main.cpp"
g++ -o"prog.exe"
./src/A.o ./src/B.o ./src/main.o
Les options en rouge sont -O le niveau
d'optimisation 0,1,2,3, et -g le niveau de débogage 1,2,3.
L'option -Wall affiche tous les
avertissements.
Les options en vert concernent la création du fichier Makefile et des fichiers associés d'extension "d".
Pour changer de compilateur : Clique droit sur le dossier du Projet|Properties|C/C++
Build|Tool_Chain_Editor
Pour modifier les options : Clique droit sur le dossier du Projet|Properties|C/C++
Build|Settings
L'exécutable compilé avec Cygwin GCC, a impérativement besoin de la DLL
cygwin1.dll pour fonctionner. Placer cette DLL dans C:\Windows
ou dans le répertoire de l'exécutable. Si l'on veut créé un exécutable
indépendant de cygwin1.dll on ajoute l'option -mno-cygwin.
g++ -mno-cygwin -o"prog.exe" ./src/A.o
./src/B.o ./src/main.o
Pour passer du mode Debug à Release : Clique droit sur le dossier du Projet|Properties|C/C++ Build|Settings|Manage_Configurations. Cela change les options d'optimisation en les mettant au meilleur -O3 et cela enlève les options de débogage.
Télécharger la dérnière version stable de FOX toolkit pour Windows à
partir du site http://www.fox-toolkit.org/
et dézipper-le. Mettre le répertoire racine de FOX Toolkit dans Msys et
rénomer-le en C:\Wascana\msys\fox
, dans le système Msys
cela correspond au répertoire /fox
L'installation de la bibliothèque se fait simplement en ce plaçant
dans le répertoire racine /fox
et en lançant :
./configure ; make ; make install
On remarquera que l'installation a compilé des exemples dans /local/bin
,
et a placer les fichiers entêtes dans /local/include/fox
,
et a compiler des librairies dans /local/lib
, et a placer
de la documentation dans /local/share/doc/
On peut tester le bon fonctionnement des applications en les
lançant. On peut tester le bon fonctionnement des applications testes
qui sont toujours dans le répertoire /fox/tests
, c-a-d
dans le répertoire C:\wascana\msys\fox\tests, en les lançant. Certaines
peuvent ne pas fonctionner parceque certaine fonctionnalité,
pilotes..., sont manquants. Cela n'est pas anormale. Noter qu'il existe
un fichier Makefile dans ce répertoire tests.
Pour connaître les options de compilation qui ont étés utilisées
pour produire ces exécutables, nous allons simplement lire le compte
rendu de la commande make lancé après avoir effacé le fichier object hello.o
et le fichier exécutable hello.exe
dans le répertoire C:\Wascana\msys\fox\tests
,
forçant ainsi la reconstruction de ces deux fichiers, la compilation en
le fichier hello.o et le linkage en le fichier hello.exe. Ouvrir un
shell Msys et positionnez-vous dans le répertoire /fox/tests
:
cd /fox/tests
rm hello.o hello.exe
make > toto.txt
Grace à la redirection, le fichier toto.txt
récupère la
sortie standart de la commande make :
toto.txt
g++ -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"fox\" -DVERSION=\"1.6.37\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DX_DISPLAY_MISSING=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_DIRENT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DWIN32=1 -DUNICODE=1 -DHAVE_VSSCANF=1 -DHAVE_VSNPRINTF=1 -DHAVE_STRTOLL=1 -DHAVE_STRTOULL=1 -I. -I. -I../include -I../include -g -O2 -DFOX_THREAD_SAFE=1 -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT -DNO_XIM -Wall -W -Woverloaded-virtual -Wformat -DHAVE_GLU_H=1 -DHAVE_GL_H=1 -c hello.cpp
/bin/sh ../libtool --mode=link g++ -g -O2 -DFOX_THREAD_SAFE=1 -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT -DNO_XIM -Wall -W -Woverloaded-virtual -Wformat -DHAVE_GLU_H=1 -DHAVE_GL_H=1 -mwindows -e _mainCRTStartup -o hello.exe hello.o ../src/libFOX-1.6.la -lm -lcomctl32 -lwsock32 -lwinspool -lmpr -lgdi32 -lm -lglu32 -lopengl32
g++ -g -O2 -DFOX_THREAD_SAFE=1 -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT -DNO_XIM -Wall -W -Woverloaded-virtual -Wformat -DHAVE_GLU_H=1 -DHAVE_GL_H=1 -mwindows -e _mainCRTStartup -o hello.exe hello.o ../src/.libs/libFOX-1.6.a -lcomctl32 -lwsock32 -lwinspool -lmpr -lgdi32 -lglu32 -lopengl32
Il y a trois lignes, la premières compile en hello.o, la seconde exécute une commande shell libtool, la troisième effectue le linkage en hello.exe.
Les options -D* ne sont pas utiles, les options -I. et -I../include
correspondent à des répertoires de fichiers d'entêtes (d'extention "h")
déjà traité par Wascana, ../src/.libs/libFOX-1.6.a
correspond à l'option -IC:\Wascana\msys\local\include\fox-1.6. C'est
l'ajout du répertoire d''entête fox-1.6 :
Clique droit sur le dossier du Projet|Properties|C/C++ Build|Settings|GCC C++ Compiler| Includes| button Add, puis saisire :
C:\Wascana\msys\local\include\fox-1.6
/bin/sh ../libtool
est une commande avant l'odre de
linkage qui n'est pas utile.
On ne retiendra comme option supplémentaire pour le linkage : -Wall -mwindows -LC:\Wascana\msys\local\lib -lFOX-1.6 -lglu32
-lopengl32 -lcomctl32 -lwsock32 -lwinspool -lgdi32 -lmpr -lCHART-1.6
Clique droit sur le dossier du Projet|Properties|C/C++ Build|Settings|MinGW C++ Linker|Librairies|Librairy serch path (-L)| puis ajouter le répertoire :
C:\Wascana\msys\local\lib
Clique droit sur le dossier du Projet|Properties|C/C++ Build|Settings|MinGW C++ Linker|Librairies|Libraies (-l)| puis ajouter les librairies :
FOX-1.6
(Cela correspond aux fichiers : libFOX-1.6.a, libCHART-1.6.a, libglu32.a, libopengl32.a, libcomctl32.a, libwsock32.a, libwinspool.a, libgdi32.a, libmpr.a. Le préfixe "lib" et l'extention "a" sont ajoutés.)
CHART-1.6
glu32
opengl32
comctl32
wsock32
winspool
gdi32
mpr
Clique droit sur le dossier du Projet|Properties|C/C++ Build|Settings|MinGW C++ Linker|Linker flags :
-Wall -mwindows
On choisie une application teste tel que groupbox.exe. On recopie le programme contenu dans groupbox.cpp à la place du code du programme type "Hello World C++ Project" que l'on a précédement créé pour tester Wascana. Et on modifie les paramètres de compilation comme décrit à l'instant.
On relance la compilation par Project|clean et la console de Wascanna affiche les commandes de compilation qui sont exécutées :
g++ -IC:\Wascana\msys\local\include\fox-1.6
-O0 -g3 -Wall
-c -fmessage-length=0 -osrc\hello.o
..\src\hello.cpp
g++ -LC:\Wascana\msys\local\lib -Wall -mwindows
-ohello.exe src\hello.o -lFOX-1.6 -lCHART-1.6
-lglu32 -lopengl32 -lcomctl32 -lwsock32 -lwinspool -lgdi32 -lmpr