IN3A11-2 : Sujet du TP11
Groupe ESIEE, Denis BUREAU, novembre 2007, v1.
1 Les objectifs
ˆ
Etre capable
1. d’utiliser les fichiers de texte en C,
2. de r´ealiser des programmes compos´es de modules compil´es s´epar´ement,
3. d’automatiser la construction de ces programmes,
4. d’appeler du C depuis Java et d’´echanger des donn´ees.
Et continuer le projet Sokoban.
2 Compilation s´epar´ee
1. Cr´eez un nouveau r´epertoire (tp11?) et recopiez-y une version fonctionnelle de sokoban2.c (au
moins les 3 premi`eres it´erations du TP10) en l’appelant main.c .
2. Dupliquez ce fichier en 9 nouveaux fichiers appel´es : types.h, util.c, protos-util.h, init.c,
protos-init.h, joue.c, protos-joue.h, undo.c, protos-undo.h
(seulement 7 nouveaux fichiers si vous n’avez pas fait undo).
3. ´
Editez chacun des 10 (ou 8) fichiers pour qu’il ne contienne plus que :
•types.h : tous les typedef
•main.c : la constante MAXCH et la fonction main()
•util.c :afficheGrille(), error(), aide(), acces()
•init.c :getSokoban(), initMurs(), nouveauJeu(), verifJeu(), compte(), et
creeGrille()
•joue.c :joue(), pas(), possible(), deplace(), gagne()
•undo.c (s’il existe) : push(), pop(), recopie()
•chaque protos-XXXX.h : les prototypes de tous les sous-programmes d´efinis dans le fichier
.c correspondant, pr´ec´ed´es de l’inclusion de types.h .
4. Attention ! Chaque .c doit commencer par inclure les .h standards qui lui sont n´ecessaires (et
pas les autres), ainsi que les protos-XXXX.h qui lui sont n´ecessaires (et pas les autres).
5. Compilez s´epar´ement chaque fichier .c (pas les .h !)
Lorsqu’il n’y a plus aucune erreur, faites l’´edition de liens en g´en´erant l’ex´ecutable sokoban3 `a
partir des fichiers *.o . Testez.
3 Automatisation
1. On veut d´esormais modifier quelquechose dans protos-joue.h (modifiez juste le nom d’un para-
m`etre pour essayer).
2. On ne veut pas avoir `a sans cesse retaper la commande de compilation des fichiers concern´es
(lesquels d’ailleurs ?), puis la commande d’´edition de liens. Pour cela ...
3. R´ecup´erez le fichier makefile en suivant le lien ”makefile typique en C” de la section 4 ci-dessous
(par t´el´echargement, pas par copier/coller), et modifiez-le pour l’adapter au pr´esent exercice :
regardez les .c pour savoir quoi ´ecrire dans les d´ependances d’include.
4. Testez la commande make, puis lancez le programme. V´erifiez `a l’´ecran quels sont les modules
recompil´es. Tapez make une seconde fois pour voir le message.
1/3