Linker, Loader und ausführbare Formate
Welche Aussage zur vom Compiler aus einer Quelldatei ausgegebenen Objektdatei (.o) ist richtig?
- ASie ist ein fertiges Programm, das vom Betriebssystem unmittelbar ausgeführt werden kann
- BSie ist lediglich komprimierter Quellcode und enthält keinen Maschinencode
- CSie enthält Maschinencode, aber die Adressen von Funktionen und Variablen in anderen Dateien stehen noch nicht fest
Antwort und Erläuterung anzeigen
Antwort: C. Sie enthält Maschinencode, aber die Adressen von Funktionen und Variablen in anderen Dateien stehen noch nicht fest
Eine Objektdatei enthält den übersetzten Maschinencode der Funktionen der Datei, Initialwerte von Variablen, eine Liste der definierten und referenzierten Namen (Symboltabelle) sowie eine Liste der Stellen, an denen später Adressen eingetragen werden (Relokationsinformationen). Befehle, die wie bei printf eine Funktion in einer anderen Datei aufrufen, behalten einen vorläufigen Wert, da die Adresse noch unbekannt ist. Der Linker fasst mehrere Objektdateien zusammen, legt die Adressen fest und erzeugt die ausführbare Datei.