Wat is Symboolresolutie?

Stap van de linker waarbij de naam van een functie of variabele waarnaar in een bestand wordt verwezen, wordt gekoppeld aan de definitie ergens anders. Zonder definitie volgt een fout door een ongedefinieerde referentie, bij twee of meer een fout door meervoudige definitie.

Japanse benaming: シンボル解決

“Symboolresolutie” komt voor in 2 oefenvragen uit 1 onderwerpen, bijv. Linker, loader en uitvoerbare formaten.

Vakgebied: Linker, loader en uitvoerbare formaten

Nu oefenen: vragen over Symboolresolutie

Welke omschrijving van de symboolresolutie die de linker uitvoert, is juist?

  1. ADe naam van een functie of variabele die in het ene bestand wordt gebruikt, wordt gekoppeld aan de definitie ervan in een ander bestand
  2. BVariabelennamen in de broncode worden vervangen door korte namen, waardoor ze moeilijk leesbaar worden
  3. CUitdrukkingen met wiskundige symbolen worden opnieuw tot getallen uitgerekend
Antwoord en toelichting tonen

Antwoord: A. De naam van een functie of variabele die in het ene bestand wordt gebruikt, wordt gekoppeld aan de definitie ervan in een ander bestand

Als main.c de functie sum aanroept en sum.c de inhoud ervan definieert, bevat main.o de informatie „verwijst naar sum” en sum.o „definieert sum”. De linker verzamelt de symbooltabellen van alle objectbestanden en zoekt voor elke verwijzing één bijbehorende definitie. Als geen definitie wordt gevonden, volgt de fout „undefined reference”, en bij twee of meer definities „multiple definition”.

“Symboolresolutie” in de toelichting

Vragen met “Symboolresolutie” (2)

  1. Welke omschrijving van de symboolresolutie die de linker uitvoert, is juist?
  2. Wat is de juiste hoofdtaak van de linker?

Verwante termen

Linker Objectbestand Relocatie (relocation) ASLR BSS-sectie Dynamisch linken Dynamische linker ELF Entry point Fragmentatie

Naar de woordenlijst