Linker, loader en uitvoerbare formaten
Welke uitspraak over het objectbestand (.o) dat de compiler uit één bronbestand voortbrengt, is juist?
- AHet is een compleet programma dat rechtstreeks door het OS kan worden uitgevoerd
- BHet is alleen de gecomprimeerde broncode en bevat geen machinecode
- CHet bevat machinecode, maar de adressen van functies en variabelen in andere bestanden zijn nog niet bepaald
Antwoord en toelichting tonen
Antwoord: C. Het bevat machinecode, maar de adressen van functies en variabelen in andere bestanden zijn nog niet bepaald
Een objectbestand bevat de machinecode die uit de functies van dat bestand is vertaald, de beginwaarden van variabelen, een lijst van gedefinieerde en gerefereerde namen (symbooltabel) en een lijst van plaatsen waar later adressen moeten worden ingevuld (relocatie-informatie). Instructies die een functie in een ander bestand aanroepen, zoals printf, hebben een voorlopige waarde omdat het adres onbekend is. De linker voegt meerdere objectbestanden samen, bepaalt de adressen en maakt een uitvoerbaar bestand.
Verder: nog 9 vragen over Linker, loader en uitvoerbare formaten