Next: Combiner le tout.
Up: Les projets en C
Previous: Les projets en C
Table des matières
Notre première dépendance dans le processus pour compléter
la compilation de mon_test concerne à
la fois la bibliothèque libsimple_math.a
et le fichier objet mon_test.o. Dans les
termes propres à make, nous créons une
ligne de Makefile comme ceci:
mon_test: libsimple_math.a mon_test.o
|
ce qui signifie simplement que les fichiers libsimple_math.a
et mon_test.o doivent exister et être
mis-à-jour avant mon_test. L'expression
mon_test: est appelée la cible
de make (make target). Au-dessous
de cette ligne, nous devrons aussi déclarer comment construire mon_test:
gcc -Wall
-o $@ mon_test.o -L. -lsimple_math
|
Le signe $@ désigne le nom de la cible
elle-même, et donc il sera substituée par mon_test.
Il est impératif de noter que l'espace avant gcc
est une tabulation (et non une suite
de huit espaces).
Ensuite, on sait que libsimple_math.a a
une dépendance vis-à-vis de simple_math_sqrt.o
et de simple_math_pow.o. Une fois de
plus, nous avons une dépendance qui peut-être décrite avec un script
de shell pour construire la cible:
libsimple_math.a: simple_math_sqrt.o
simple_math_pow.o
rm -f $@
ar rc $@ simple_math_sqrt.o
simple_math_pow.o
ranlib $@
|
Notons que la marge à gauche est une seule tabulation (et nonune suite de huit espaces).
La dernière dépendance est celle des fichiers simple_math_sqrt.o
et simple _math_pow.o qui dépendent
de simple_math_sqrt.c et simple_math.pow_c,
respectivement. Ceci requiert deux règles de make.
Cependant, make présente un raccourci qui fonctionne dans le cas de
nombreux fichiers sources C:
.c.o:
gcc -Wall -c
-o $*.o $<
|
Ceci signifie que tous les fichiers .o
doivent être construits à partir des fichiers .c
du même nom au moyen de la commande gcc -Wall
-c -o $*.o $<, où $*.o désigne
le nom du fichier object et $< le nom
du fichier dont dépend $*.o et ce, séquentiellement,
pour tous les fichiers impliqués.
[NdT: cette notation .c.o est aujourd'hui
remplacée par %.o: %.c (où
l'espacement entre le signe : et %
est une tabulation)].
Next: Combiner le tout.
Up: Les projets en C
Previous: Les projets en C
Table des matières
1-01-2006