Éditeurs de liens, chargeurs et exécutables

Quel est le rôle principal de l'éditeur de liens (linker) ?

  1. ACombiner plusieurs fichiers objets et bibliothèques, associer les noms à des adresses et produire un exécutable
  2. BDétecter et signaler les erreurs de syntaxe du code source
  3. CLibérer automatiquement la mémoire d'un programme en cours d'exécution lorsqu'elle n'est plus utilisée
Afficher la réponse et l'explication

Réponse : A. Combiner plusieurs fichiers objets et bibliothèques, associer les noms à des adresses et produire un exécutable

L'éditeur de liens associe chaque nom (symbole) référencé dans les fichiers objets à l'entité qui le définit quelque part (résolution des symboles), dispose le code et les données de chaque fichier pour fixer les adresses définitives, et remplace les adresses provisoires dans les instructions par les valeurs correctes (relocalisation). Au besoin, il extrait des fonctions de bibliothèques pour les ajouter. On obtient ainsi un exécutable que l'OS peut charger et exécuter.

S'entraîner sur ce thème Retour au thème

Autres questions sur Éditeurs de liens, chargeurs et exécutables

  1. Quelle description de la résolution des symboles effectuée par l'éditeur de liens est correcte ?
  2. Quelle description de la relocalisation effectuée par l'éditeur de liens est correcte ?
  3. Lors de l'édition de liens d'un programme C, l'erreur « undefined reference to `foo' » (référence non définie à foo) apparaît. Quelle est la cause la plus probable ?
  4. La même fonction globale void init(void), sans static, est définie à la fois dans a.c et b.c, puis on effectue l'édition de liens. Que se passe-t-il ?
  5. Quel est l'effet de la définition d'une fonction avec static en C (par exemple static int helper(void)) ?

Comparatifs sur ce thème