Information Technology Reference
In-Depth Information
LAS <affiche_écran, adr_m_affichage_2>
code objet translatable correspondant au module dans lequel l'adresse
adr_m_affichage_1 correspond à l'adresse de la procédure afficher
dans le module et où adr_m_affichage_2 correspond à l'appel
vers la procédure affiche_écran.
fin module;
Fonctionnement de l'éditeur de liens
Le rôle de l'éditeur de liens consiste donc à associer chaque lien à satisfaire avec le
lien utilisable correspondant de manière à pouvoir assigner une adresse à chacun des
objets présents dans les modules. L'éditeur de liens est appelé en lui fournissant en
paramètre les noms de chacun des modules objets entrant en compte dans la cons-
truction du programme exécutable final.
Exemple
La commande ld - o fich_exe module1.o module2.o permet la construction du
programme exécutable fich_exe à partir des modules objets module1.o module2.o
sous un système de type Unix.
La commande ald module_principal permet la construction d'un programme
exécutable à partir de modules objets issus d'une compilation Ada. Tous les modules
ont été au moment de la compilation rangés dans une bibliothèque adalib créée au
moyen de la commande amklib adalib et module_principal est le nom du module
objet dans la bibliothèque contenant le programme principal.
L'édition des liens pour un ensemble de modules objets aboutissant à la construc-
tion d'un programme exécutable se déroule en trois étapes : la construction de la
carte d'implantation du programme final, la construction de la table des liens et la
construction du programme exécutable final.
Construction de la carte d'implantation
La première étape de l'édition des liens est donc la construction de la carte d'implan-
tation du programme final. Cette étape consiste à placer les uns derrière les autres les
différents modules relogeables générés par le compilateur et à calculer les adresses
d'implantation de ces modules, c'est-à-dire l'adresse du premier octet de chacun des
modules. Le premier module garde une adresse d'implantation égale à 0 car il est le
premier dans la carte. Les modules suivants par contre ont une adresse d'implantation
qui est translatée de la taille en octets des modules qui les précèdent. La taille des
modules objets est une information délivrée par le compilateur. Ainsi sur la figure 3.7,
le module B garde une adresse d'implantation égale à 0. Le module C a une adresse
d'implantation translatée de taille (B) et le module A a une adresse d'implantation
qui est translatée de taille (B)
taille (C).
Si nous considérons la construction du programme exécutable final permettant
d'accéder au catalogue de notre bibliothèque à partir des trois modules interface.o,
+
Search WWH ::




Custom Search