Linker, Loader und ausführbare Formate

Welche Aussage zur vom Linker durchgeführten Symbolauflösung ist richtig?

  1. ADer in einer Datei verwendete Name einer Funktion oder Variablen wird der Definition in einer anderen Datei zugeordnet
  2. BVariablennamen im Quellcode werden durch kurze Namen ersetzt, sodass sie schwer lesbar werden
  3. CAusdrücke mit mathematischen Symbolen werden zu Zahlenwerten ausgerechnet
Antwort und Erläuterung anzeigen

Antwort: A. Der in einer Datei verwendete Name einer Funktion oder Variablen wird der Definition in einer anderen Datei zugeordnet

Ruft main.c die Funktion sum auf und definiert sum.c ihren Inhalt, enthält main.o die Information „referenziert sum“ und sum.o „definiert sum“. Der Linker sammelt die Symboltabellen aller Objektdateien und findet für jede Referenz genau eine zugehörige Definition. Wird keine Definition gefunden, ergibt sich der Fehler „undefinierte Referenz“, bei zwei oder mehr Definitionen der Fehler „Mehrfachdefinition“.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Linker, Loader und ausführbare Formate

  1. Welche Aussage zur vom Linker durchgeführten Relokation ist richtig?
  2. Beim Linken eines C-Programms trat der Fehler „undefined reference to `foo'“ (undefinierte Referenz auf foo) auf. Was ist die wahrscheinlichste Ursache?
  3. In a.c und b.c wurde jeweils eine globale Funktion gleichen Namens void init(void) ohne static definiert und gelinkt. Was geschieht?
  4. Welche Wirkung hat es, in C eine Funktion mit static zu definieren (z. B. static int helper(void))?
  5. Was bedeutet die Angabe „extern int count;“ in C?

Vergleiche zu diesem Thema