Édition de liens

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir Lien.
Illustration du principe de l'édition de liens. Les fichiers objets et les bibliothèques statiques sont assemblés en une nouvelle bibliothèque (statique ou dynamique), ou un fichier exécutable.

Lors d’un développement informatique, l’édition des liens est un processus qui permet de créer des fichiers exécutables ou des bibliothèques dynamiques ou statiques, à partir de fichiers objets.

La compilation en fichiers objets laisse l'identification de certains symboles à plus tard. Avant de pouvoir exécuter ces fichiers objets, il faut résoudre les symboles et les lier à une bibliothèque. Le lien peut être :

  • statique : le fichier objet et la bibliothèque sont liés dans le même fichier exécutable ;
  • dynamique : le fichier objet est lié avec la bibliothèque, mais pas dans le même fichier exécutable ; les liens sont établis lors du lancement de l'exécutable.

Les assembleurs sont généralement livrés avec un programme chargé de faire ce travail (appelé linker ou éditeur de liens).

Certains langages modernes (Java, langages .NET) n'ont plus besoin de cette phase de la compilation et résolvent les adresses dynamiquement (au prix d'un temps de calcul plus important).

Édition des liens[modifier | modifier le code]

La phase d’édition des liens consiste en la construction d'une image mémoire contenant l’ensemble des parties de code compilées séparément (modules, sous-programmes ou bibliothèques de sous-programmes). L'éditeur de liens a pour rôle de lier les fichiers objets (fichiers simplement compilés) avec les fichiers précompilés d'une ou plusieurs bibliothèques.

Bibliothèques dynamiques[modifier | modifier le code]

L’édition des liens est aussi capable de créer les références appropriées vers les fonctions contenues dans les « bibliothèques dynamiques partagées », dont le chargement (assuré par le système d'exploitation) est retardé jusqu’au moment de l’exécution du code objet. De telles bibliothèques partagées permettent de réduire la taille des fichiers exécutables produits par la compilation et l’édition de liens (lorsque le code de la bibliothèque est commun à plusieurs programmes). Elles sont populaires sous le nom de dynamically linked library (DLL, sous Windows) ou shared object (SO) ou dynamic library (DYLIB, sous Mac).