Linker, loader en uitvoerbare formaten

Welke omschrijving van statisch linken is juist?

  1. ADe code van de gebruikte bibliotheken wordt in het uitvoerbare bestand gekopieerd en daarmee samengevoegd
  2. BBij elke uitvoering van het programma worden de bibliotheken geladen en gekoppeld
  3. CEr worden geen bibliotheken gebruikt en alle verwerking staat in één bronbestand
Antwoord en toelichting tonen

Antwoord: A. De code van de gebruikte bibliotheken wordt in het uitvoerbare bestand gekopieerd en daarmee samengevoegd

Bij statisch linken haalt de linker de benodigde functies uit een statische bibliotheek (op Linux een .a-bestand) en bouwt die in het uitvoerbare bestand in. Het werkt ook als de bibliotheek in de uitvoeromgeving ontbreekt en er is geen koppelwerk bij het opstarten, maar het uitvoerbare bestand wordt groot en elk programma dat dezelfde bibliotheek gebruikt, heeft een eigen kopie. Ook als een fout in de bibliotheek is verholpen, wordt dat pas verwerkt na opnieuw bouwen.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Linker, loader en uitvoerbare formaten

  1. Welk voordeel van dynamisch linken (gedeelde bibliotheken) is juist?
  2. Een dynamisch gelinkt programma werd naar een andere computer gekopieerd en uitgevoerd, maar startte niet. Wat is de meest waarschijnlijke oorzaak?
  3. Wat bouwt de linker in het uitvoerbare bestand in als er samen met een statische bibliotheek (.a-bestand) wordt gelinkt?
  4. Bij de GNU-linker kan een fout „undefined reference” optreden als een statische bibliotheek vóór het objectbestand dat haar gebruikt wordt geschreven, zoals in „gcc -lmylib main.o”. Wat is de juiste reden?
  5. Welke omschrijving van position-independent code (PIC) is juist?

Vergelijkingen bij dit onderwerp