Académique Documents
Professionnel Documents
Culture Documents
gcc test.c -c
4 Pour effectuer une dition de lien dynamique de ce programme, il suffit
d'xecuter :
ldd test.dyn
Ce qui donne :
objdump -d test.o
objdump -d test.dyn
objdump sert afficher le code objet dassembl. On remarque que le code de
test.dyn est beaucoup plus long que celui de test.o
9 Revenons vers le fichier cre et modifions ce qu'il faut pour le rendre
modulaire l'aide de la commande cat.
Le contenu des fichiers deviendra :
add.c:
#include "add.h" int add(int x, int y) { return x+y; }
add.h:
int add (int x, int y);
test.c:
#include <stdio.h>
#include "add.h"
int main() {
int a = 3, b=4,c;
c=add(a,b);
printf("%d + %d = %d\n",a,b,c);
return 0;
}
mk@MK:~/TP3$ ./test
3+4=7
12 La commande make effectue la compilation d'executables d'une manire
automatique. Elle se charge de recompiler tous les fichiers qui ont t modifis.
Pour cela, cette commande a besoin d'un fichier makefile contenant les
dpendances du programme en question.
Dans notre cas, le makefile peut se prsenter de la manire suivante :
OBJS = test.O add.o
EXEC = test
CC = gcc
test : $ (OBJS)
$ (CC) $(OBJS) -o $(EXEC)
add.o : add.c add.h
$ (CC) -c add.c
test.o :
$ (CC) -c test.cm
13 Aprs avoir cre le fichier sub.c dont le contenu est donn plus du fichier
sub.h qui devra contenir :
3+4 = 7
16 On cre le dossier ncessaire grce mkdir.
ON y place la bibliothque en excutant
mv libarithm.a TP3/lib
17 On continue en crant la bibliothque demand en utilisaiton la
commande dcrite adns le TP.
On remarque l'attribut -shared qui indique seulement que nous voulons
produire un objet partag qui peut tre li avec d'autres objets pour former un
excutable.
18 On refait l'dition de lien comme pour tout l'heure.
ldconfig n TP3/lib
Une fois l'excutable recompil, il s'execute sans problme:)