Objektmodul

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 29 mars 2018; kontroller kräver 3 redigeringar .

Objektmodul (även - objektfil , engelsk  objektfil ) - en fil med en mellanrepresentation av en separat programmodul, erhållen som ett resultat av bearbetning av källkoden av kompilatorn . En objektfil innehåller speciellt förberedd kod (ofta kallad binär eller binär ) som kan kombineras med andra objektfiler med hjälp av en länk ( linker ) för att erhålla en färdig körbar modul eller bibliotek.

Objektfiler är block av maskinkod och data med odefinierade adresser för referenser till data och procedurer i andra objektmoduler, samt en lista över deras procedurer och data. Länkaren sätter ihop koden och data för varje objektmodul till ett slutligt program och beräknar och fyller i korsreferensadresserna mellan modulerna. Länkning med statiska bibliotek görs av länken eller länken (som kan vara ett fristående program eller en del av kompilatorn), medan länkning med operativsystemet och dynamiska bibliotek görs under körning, efter att programmet har laddats in i minnet.

Programmeraren genererar objektkod med hjälp av en kompilator eller assembler. Till exempel, på Linux, kommer GNU Compiler Collection-kompilatorn att generera .o-filer som använder ELF-formatet. Kompilering på Windows producerar .obj-filer med COFF-formatet. Länken används sedan för att kombinera objektkoden till ett enda körbart program eller bibliotek, och extraherar förkompilerade systembibliotek efter behov.

Det finns många olika objektfilformat; ursprungligen hade varje typ av dator sitt eget unika format, men med tillkomsten av Unix och andra bärbara operativsystem definierades vissa format som ELF och COFF och användes på olika typer av system. Samma format kan användas för både inmatning och utmatning av länken och därmed formatet för biblioteket och den körbara filen. Vissa format kan innehålla maskinkod för olika processorer, med korrekt variant vald av operativsystemet när programmet laddas [1] .

Se även

Anteckningar

  1. Installera DB2 Universal Database version 6.1 på Red Hat Linux  // DBAs guide till databaser under Linux. - Elsevier, 2000. - S. 237-282 .