Dernière modification 29.10.00
Beaucoup de programmes sous licence GPL qu'on trouve sous Linux notamment peuvent être compilés sous Windows avec cygwin, la page wwwoffle sous windows présente ainsi la compil de wwwoffle à l'aide de cygwin.
Je préfère l'installation en deux parties, le téléchargement puis l'install, je choisis donc Download from Internet. On doit alors choisir le répertoire local où seront stockés les packages, cliquez ensuite sur Next. Vous devez ensuite sélectionner le type de votre connexion, vous avez le choix entre :
- use IE5 settings
- direct connexion
- use http/ftp proxy
Personnellement j'utilise un proxy perso (wwwoffle),
j'ai donc coché http/ftp proxy, indiqué le nom de
mon serveur proxy et le numéro de port (8080 dans le cas de wwwoffle),
on clique sur Next une fois terminée.
On doit alors choisir un site de téléchargement, pour
ma part j'ai choisi ludique.u-bourgogne.fr,
pour continuer on clique alors sur Next.
On sélectionne maintenant les packages qu'on veut installer.
Par défaut tous sont sélectionnés, vous pouvez en
déselectionner en cliquant dessus, vous pouvez choisir aussi de
télécharger les sources en cochant sur la case marquée
Src?
des packages qui vous intéresse.
Cliquez sur Next quand vous avez terminé. Vous devez maintenant choisir le répertoire de destination puis cliquez sur Next. Le téléchargement peut commencer :
Pour info cela fait plus de 45Mo sans les sources !
Pour l'installation proprement dite, on relance setup.exe
Cette fois ci au niveau de la fenêtre de choix du mode d'installation,
on choisira Install from Local Directory, puis Next, on doit
alors choisir le répertoire où se trouvent les packages téléchargés,
puis Next. On doit alors choisir le répertoire d'installation
et le format des fichiers texte (par défaut c'est le format Unix
qui est choisi) :
Puis Next, on retrouve la fenêtre de choix des packages, choisissez exactement ce que vous avez téléchargés, puis cliquez sur Next. L'installation peut commencer :
A la fin de l'installation on vous donne la possibilité de créer des raccourcis sur le bureau et dans le menu Démarrer, cliquez sur Next pour continuer. Une dernière fenêtre vous indique alors que l'installation est terminée (Installation Complete), cliquez sur OK pour terminer.
- bin, contenant les exécutables, on retrouve beaucoup
de commandes standards UNIX, en voici un brel panel : awk, bash,
bison,
bunzip2,
chmod, date, dd, find,
grep,
kill,
m4, make, gcc, man,
mount,
rcp,
su, telnet, touch, vi, whoami, et j'en
passe et des meilleurs...
- etc, contenant les fichiers de configuration.
- home, contenant les répertoires utilisateurs
- lib, contenant toutes les bibliothèques diverses y
compris celle de développement
- tmp, répertoire temporaire
- usr qui contient lui-même
- bin, répertoire
d'exécutable (vide par défaut)
- doc, pour documentation
- include, contenenant
les headers nécessaires pour développer
- info, (?)
- lib, autre répertoire
de bibliothèque (vide par défaut)
- libexec, répertoire
d'exécutable
- local contenant
d'autres sous répertoires (bin, doc, etc, include et lib) pour certaines
applis bien spécifiques
- man, contient les
manuels des divers applis
- sbin, exécutables
pour l'administrateur
- share, contient
les ressources des différents exécutables
- ssl, pour rajouter
une couche sécurisée à la couche transport de TCP
- tmp, autre répertoire
temporaire
- var, contient les variables temporaires et autres fichiers
de logs.
Vous avez vite reconnu une arborescence type UNIX
A noter aussi que la complétion (touche TAB) existe aussi comme sous UNIX, de même que vous avez droit aux rappels des dernères commandes avec !. Pour quitter proprement il suffit de taper logout
cd
Puis tapez
vi hello.c
Voici le contenu du dit-fichier:
int main () {}
printf ("Hello world!\n");
return 0;
}
Voici un screenshot de l'action de vi :
Pour les connaisseurs, vous constaterez qu'en fait de vi,
c'est plutôt vim (le vi coloré). Pour ceux qui
rechignent à utiliser vi, vous pouvez très bien aussi
taper votre texte dans n'importe quel éditeur du style
Bloc
Note.
On compile le programme en tapant:
gcc -c hello.c
gcc -o hello hello.o
La première commande crée le .o et la deuxième le .exe. Pour voir si ça marche, tapez :
./hello
Et vous devriez voir:
Hello world !
Ca marche !! Regardons maintenant de quelles DLL (bibliothèques windows) notre programme dépend en tapant:
objdump -p hello.exe | grep "DLL Name"
On obtient
DLL Name: cygwin1.dll
DLL Name: KERNEL32.dll
La première fait partie de la distrib cygwin, le deuixème
est standard sous windows. Le problème est que votre programme n'est
pas portable, c'est à dire qu'en l'exécutant sur un autre
PC démuni de Cygwin, le programme refusera de s'exécuter.
On va faire en sorte que notre programme ne dépende que de DLL standards
de Windows.
On recompile en rajoutant une option:
gcc -c -mno-cygwin hello.c
gcc -o hello -mno-cygwin hello.o
On obtient à nouveau hello.exe qui marche aussi bien que le précédent, par contre si on veut voir les DLL dont il dépend :
objdump -p hello.exe | grep "DLL Name"
On obtient
DLL Name: crtdll.dll
DLL Name: KERNEL32.dll
Ce sont deux DLL standards de windows, votre programme est donc portable sur d'autres plateformes windows.
#include <iostream.h>
int main () {
cout << " Hello World!" << endl;
return 0;
}
On le compile en tapant:
c++ -c hello.cpp
c++ -o hello hello.o
Vous pourrez vite constater que le programme obtenu réalise bien
ce pour quoi il a été écrit. Vous constaterez aussi
que l'option -mno-cygwin génère une tonne d'erreurs
(essentiellement des undefined reference). Mais pas de panique pour porter
vos programmes il suffira d'inclure dans vos packages la DLL cygwin1.dll.
[Retour page d'accueil FUNIX] |