Éditeurs de liens, chargeurs et exécutables

Quelle description de la résolution des symboles effectuée par l'éditeur de liens est correcte ?

  1. AAssocier les noms de fonctions et de variables utilisés dans un fichier à leur définition située dans un autre fichier
  2. BRemplacer les noms de variables du code source par des noms courts pour le rendre illisible
  3. CRecalculer en valeurs numériques les expressions contenant des symboles mathématiques
Afficher la réponse et l'explication

Réponse : A. Associer les noms de fonctions et de variables utilisés dans un fichier à leur définition située dans un autre fichier

Si main.c appelle la fonction sum et que sum.c en définit le contenu, main.o contient l'information « référence sum » et sum.o l'information « définit sum ». L'éditeur de liens rassemble les tables des symboles de tous les fichiers objets et trouve, pour chaque référence, une définition correspondante unique. Si aucune définition n'est trouvée, l'erreur « référence non définie » survient ; s'il y en a deux ou plus, l'erreur « définition multiple ».

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 relocalisation effectuée par l'éditeur de liens est correcte ?
  2. 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 ?
  3. 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 ?
  4. Quel est l'effet de la définition d'une fonction avec static en C (par exemple static int helper(void)) ?
  5. Que signifie l'écriture « extern int count; » en C ?

Comparatifs sur ce thème