Objektmodul (også - objektfil , engelsk objektfil ) - en fil med en mellemrepræsentation af et separat programmodul, opnået som et resultat af at behandle kildekoden af compileren . En objektfil indeholder specielt forberedt kode (ofte kaldet binær eller binær ), der kan kombineres med andre objektfiler ved hjælp af en linker ( linker ) for at opnå et færdigt eksekverbart modul eller bibliotek.
Objektfiler er blokke af maskinkode og data med udefinerede adresser på referencer til data og procedurer i andre objektmoduler samt en liste over deres procedurer og data. Linkeren samler koden og dataene for hvert objektmodul til et endeligt program og beregner og udfylder krydsreferenceadresserne mellem moduler. Sammenkædning med statiske biblioteker udføres af linkeren eller linkeren (som kan være et selvstændigt program eller en del af compileren), mens sammenkobling med operativsystemet og dynamiske biblioteker udføres ved kørsel, efter at programmet er indlæst i hukommelsen.
Programmøren genererer objektkode ved hjælp af en compiler eller assembler. For eksempel vil GNU Compiler Collection-kompileren på Linux generere .o-filer, der bruger ELF-formatet. Kompilering på Windows producerer .obj-filer ved hjælp af COFF-formatet. Linkeren bruges derefter til at kombinere objektkoden til et enkelt eksekverbart program eller bibliotek, og udtrække prækompilerede systembiblioteker efter behov.
Der er mange forskellige objektfilformater; oprindeligt havde hver type computer sit eget unikke format, men med fremkomsten af Unix og andre bærbare operativsystemer blev nogle formater som ELF og COFF defineret og brugt på forskellige typer systemer. Det samme format kan bruges til både input og output af linkeren og dermed formatet på biblioteket og den eksekverbare. Nogle formater kan indeholde maskinkode til forskellige processorer, med den korrekte variant valgt af operativsystemet, når programmet indlæses [1] .