Hvad er en objektfil?
En objektfil er en computerfil genereret af et program kaldet en compiler og indeholder data såvel som instruktioner. Kompilatorer oversætter programmeringssprogets kildekode til en mellemliggende maskinlæsbar form kendt som objektkode. Mindre programmer kan samles i en enkelt objektfil, mens større programmer typisk kompileres i flere filer med relateret funktion. Disse individuelle objektfiler forbindes af en linker, og operativsystemspecifik information tilføjes for at danne et eksekverbart program.
I almindelig praksis betegnes en objektfil med en ".obj" filtypenavn. Der er dog flere forskellige formater til disse filer. Det mest almindelige er Intel® Relocatable Object Module Format (OMF) og Common Object File File Format (COFF) i Windows® og UNIX® System V. I mange INIX®-systemer er det eksekverbare og linkbare format (ELF) kommet til udskift COFF.
Uanset format indeholder en objektfil typisk tre typer information, der giver den mulighed for at interagere med andre programmoduler. Procedurer og data, der er åbne for ekstern reference, tildeles navne, hvormed de kan kaldes fra andre moduler. Tilsvarende bemærkes henvisninger til oplysninger uden for modulet, men tildeles ikke et navn. Når filerne er knyttet, tildeles de navngivne referencer det navn, der er givet dem i modulet, hvor de oprindeligt var defineret. Lokale navne bruges til instruktioner og data, der kun henvises til inden for et modul.
Ikke al kode, der kan forbindes, gemmes som objektfiler. Biblioteker er samlinger af forudkompilerede rutiner, der gemmes som objektkode. De produceres på omtrent samme måde som objektfiler og er nyttige til opbevaring af ofte kaldte procedurer. Når en linker ikke finder en henvisning inden for andre objektfiler, søger den automatisk efter den i en biblioteksfil. De fleste implementeringer af et programmeringssprog leveres med et standardbibliotek med funktioner.
Ved hjælp af dynamisk linking kan en objektfil samtidig bruges af flere eksekverende programmer. I stedet for at binde objektkode til et program, når det er knyttet, er det det hentes, når programmet indlæses eller under kørsel, når der henvises til en procedure. I Windows®-miljøet er disse kendt som dynamiske linkbiblioteker og betegnes med en ".dll" -udvidelse. Systemer, der ligner Unix®, betegner ofte denne type fil et dynamisk delt objekt (DSO). Denne type objektfil kan også implementeres til brug med et bestemt program og ville være en del af installationens program.