Linker, loader en uitvoerbare formaten

Wat bouwt de linker in het uitvoerbare bestand in als er samen met een statische bibliotheek (.a-bestand) wordt gelinkt?

  1. AAlle objectbestanden in de bibliotheek
  2. BAlleen de bestandsnaam van de bibliotheek, geen code
  3. CAlleen die objectbestanden in de bibliotheek die nodig zijn om onopgeloste verwijzingen op te lossen
Antwoord en toelichting tonen

Antwoord: C. Alleen die objectbestanden in de bibliotheek die nodig zijn om onopgeloste verwijzingen op te lossen

Een statische bibliotheek is een archief waarin veel objectbestanden zijn samengevoegd. De linker haalt uit het archief alleen de objectbestanden die symbolen definiëren waarvoor nog geen definitie is gevonden en bouwt die in. Daarom groeit het uitvoerbare bestand ook bij een bibliotheek met veel functies, zoals de standaardbibliotheek, alleen met de gebruikte functies.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Linker, loader en uitvoerbare formaten

  1. 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?
  2. Welke omschrijving van position-independent code (PIC) is juist?
  3. Wat is de juiste rol van de GOT (global offset table) die bij gedeelde bibliotheken wordt gebruikt?
  4. Welke omschrijving is juist van lazy binding met de PLT (procedure linkage table) bij dynamisch linken?
  5. Wat is de juiste rol van de dynamische linker (zoals ld.so) die werkt bij het starten van een dynamisch gelinkt programma op Linux?

Vergelijkingen bij dit onderwerp