Kaj je objektna datoteka?

Objektna datoteka je računalniška datoteka, ki jo ustvari program, imenovan prevajalnik, in vsebuje podatke in navodila. Prevajalniki prevajajo izvorno kodo programskega jezika v vmesno strojno berljivo obliko, znano kot objektna koda. Manjši programi so lahko prevedeni v eno objektno datoteko, medtem ko so večji programi običajno prevedeni v več datotek sorodnih funkcij. Te posamezne objektne datoteke združi povezovalec in dodane so informacije, specifične za operacijski sistem, da tvorijo izvedljiv program.

Običajno je objektna datoteka označena s pripono datoteke “.obj”. Vendar pa obstaja več različnih formatov za te datoteke. Najpogostejša sta Intel® Relocatable Object Module Format (OMF) in Common Object File Format (COFF) v sistemih Windows® in UNIX® System V. V mnogih sistemih INIX® je izvedljiva in povezljiva oblika (ELF) postala zamenjajte COFF.

Ne glede na obliko objektna datoteka običajno vsebuje tri vrste informacij, ki ji omogočajo interakcijo z drugimi programskimi moduli. Postopkom in podatkom, ki so odprti za zunanje reference, so dodeljena imena, s katerimi jih je mogoče priklicati iz drugih modulov. Podobno so sklicevanja na informacije zunaj modula zabeležene, vendar jim ni dodeljeno ime. Ko so datoteke povezane, bo neimenovanim referencam dodeljeno ime, ki jim je dano v modulu, kjer so bile prvotno definirane. Lokalna imena se uporabljajo za navodila in podatke, ki se nanašajo samo na modul.

Vsa povezljiva koda ni shranjena kot objektne datoteke. Knjižnice so zbirke predhodno prevedenih rutin, ki so shranjene kot objektna koda. Proizvedene so na skoraj enak način kot objektne datoteke in so uporabne za shranjevanje pogosto imenovanih postopkov. Ko povezovalec ne najde reference v drugih objektnih datotekah, jo samodejno poišče v datoteki knjižnice. Večina izvedb programskega jezika ima standardno knjižnico funkcij.

S pomočjo dinamičnega povezovanja lahko objektno datoteko hkrati uporablja več izvajajočih se programov. Namesto vezave objektne kode na program, ko je povezan, se pridobi, ko se program naloži ali med izvajanjem, ko se sklicuje na postopek. V okolju Windows® so znane kot knjižnice z dinamičnimi povezavami in so označene z razširitvijo ».dll«. Sistemi, podobni Unixu, pogosto imenujejo to vrsto datoteke dinamični objekt v skupni rabi (DSO). Ta vrsta objektne datoteke se lahko izvaja tudi za uporabo z določenim programom in bi bila del namestitve tega programa.