Skip to main content

Hva er en objektfil?

En objektfil er en datamaskinfil generert av et program som heter en kompilator og inneholder data samt instruksjoner.Kompilatorer oversetter programmeringsspråkkodekode til en mellomliggende maskinlesbar skjema kjent som objektkode.Mindre programmer kan være samlet i en enkelt objektfil, mens større programmer vanligvis er samlet i flere filer med relatert funksjon.Disse individuelle objektfilene er forbundet med en linker og operativsystemets spesifikke informasjon blir lagt til for å danne et kjørbart program.

I felles praksis er en objektfil betegnet med en .obj -filtyde.Det er imidlertid flere forskjellige formater for disse filene.De vanligste er Intel Flyttbar objektmodulformat (OMF), og det vanlige objektfilformatet (COFF) til Windows Reg og UNIX REG;System V. i mange inix reg;Systemer, det kjørbare og koblingsbare formatet (ELF) har kommet for å erstatte Coff.

Uansett format, inneholder en objektfil vanligvis informasjon om tre typer som lar den samhandle med andre programmoduler.Prosedyrer og data som er åpne for referanse utenfor er tildelt navn som de kan kalles fra andre moduler.Tilsvarende er referanser til informasjon utenfor modulen notert, men ikke tildelt et navn.Når filene er koblet, vil de ikke navngitte referansene bli tildelt navnet gitt dem i modulen der de opprinnelig ble definert.Lokale navn brukes til instruksjoner og data referert til utelukkende i en modul.

Ikke alle koblingskode lagres som objektfiler.Biblioteker er samlinger av forhåndskompilerte rutiner som er lagret som objektkode.De produseres på omtrent samme måte som objektfiler og er nyttige for lagring av ofte kalt prosedyrer.Når en linker ikke finner en referanse i andre objektfiler, vil den automatisk søke etter den i en bibliotekfil.De fleste implementeringer av et programmeringsspråk har et standardbibliotek med funksjoner.

Ved hjelp av dynamisk kobling kan en objektfil samtidig brukes av flere utførende programmer.I stedet for å binde objektkode til et program når det er koblet, er det hentet når programmet er lastet eller ved kjøretid når en prosedyre blir referert til.I vinduene og reg;Miljø, disse er kjent som dynamiske koblingsbiblioteker og er betegnet med en .dll -utvidelse.Systemer som ligner UNIX REG;Ofte betegner denne typen fil et dynamisk delt objekt (DSO).Denne typen objektfil kan også implementeres for bruk med et bestemt program og vil være en del av programmets installasjon.