Wat is een objectbestand?

Een objectbestand is een computerbestand gegenereerd door een programma dat een compiler wordt genoemd en bevat gegevens en instructies. Compilers vertalen programmeertaalbroncode in een tussenliggende machinaalleesbaar formulier dat bekend staat als objectcode. Kleinere programma's kunnen worden gecompileerd in één objectbestand, terwijl grotere programma's meestal worden samengesteld in verschillende bestanden met gerelateerde functie. Deze individuele objectbestanden worden verbonden door een linker en het besturingssysteemspecifieke informatie wordt toegevoegd om een ​​uitvoerbaar programma te vormen.

In gebruikelijke praktijk wordt een objectbestand aangegeven door een ".obj" -bestandsuitbreiding. Er zijn echter verschillende formaten voor deze bestanden. De meest voorkomende zijn de Intel® Relocatable Object Module Format (OMF) en de Common Object File Format (Coff) van Windows & Reg en UNIX® System V. In veel Inix® -systemen is het uitvoerbare en linkbare formaat (ELF) gekomen om Coff te vervangen.

Ongeacht het formaat bevat een objectbestand meestal drie typeninformatieDat stelt het in staat om te communiceren met andere programmamodules. Procedures en gegevens die openstaan ​​voor externe referentie zijn toegewezen namen waarmee ze vanuit andere modules kunnen worden opgeroepen. Evenzo worden verwijzingen naar informatie buiten de module genoteerd maar geen naam toegewezen. Wanneer de bestanden zijn gekoppeld, krijgen de niet -genoemde referenties de naam toegewezen in de module waar ze oorspronkelijk werden gedefinieerd. Lokale namen worden gebruikt voor instructies en gegevens waarnaar alleen in een module wordt verwezen.

Niet alle koppelingscode wordt opgeslagen als objectbestanden. Bibliotheken zijn collecties van vooraf gecompileerde routines die worden opgeslagen als objectcode. Ze worden op vrijwel dezelfde manier geproduceerd als objectbestanden en zijn nuttig voor het opslaan van vaak procedures genoemd. Wanneer een linker geen referentie vindt in andere objectbestanden, wordt deze automatisch in een bibliotheekbestand op zoek. De meeste implementaties van een programmeertaalKom met een standaardbibliotheek met functies.

Door middel van dynamische koppeling kan een objectbestand tegelijkertijd worden gebruikt door meerdere uitvoeringsprogramma's. In plaats van objectcode aan een programma te binden wanneer het wordt gekoppeld, wordt het opgehaald wanneer het programma wordt geladen of tijdens runtime wanneer naar een procedure wordt verwezen. In de Windows® -omgeving staan ​​deze bekend als dynamische linkbibliotheken en worden aangegeven met een ".dll" -verlenging. Systemen vergelijkbaar met UNIX® noemen dit type bestand vaak een dynamisch gedeeld object (DSO). Dit type objectbestand kan ook worden geïmplementeerd voor gebruik met een bepaald programma en zou deel uitmaken van de installatie van dat programma.

ANDERE TALEN