Kas yra objekto failas?

Objekto failas yra kompiuterio failas, sukurtas programos, vadinamos kompiliatoriumi, ir kuriame yra duomenų bei instrukcijos. Kompiliatoriai verčia programavimo kalbos šaltinio kodą į tarpinę mašininio skaitymo formą, žinomą kaip objekto kodas. Mažesnės programos gali būti sukompiliuotos į vieną objekto failą, o didesnės programos paprastai sukompiliuojamos į kelis susijusių funkcijų failus. Šie atskiri objektų failai sujungiami linkeriu, o operacinės sistemos informacija pridedama, kad būtų sudaryta vykdomoji programa.

Įprasta, objekto failas žymimas „.obj“ failo plėtiniu. Tačiau yra keletas skirtingų šių failų formatų. Labiausiai paplitęs yra Intel® perkeliamo objekto modulio formatas (OMF) ir bendras objektų failų formatas (COFF) Windows® ir UNIX® sistemos V. Daugelyje INIX® sistemų vykdomasis ir susiejamas formatas (ELF) buvo pritaikytas. pakeisti COFF.

Nepriklausomai nuo formato, objekto faile paprastai yra trijų tipų informacija, leidžianti sąveikauti su kitais programos moduliais. Procedūroms ir duomenims, kurie yra atviri išorinei nuorodai, yra priskirti pavadinimai, kuriais jie gali būti iškviesti iš kitų modulių. Panašiai nuorodos į informaciją, esančią už modulio ribų, yra pažymimos, tačiau jiems nepriskiriamas pavadinimas. Kai failai yra susieti, bevardėms nuorodoms bus priskirtas pavadinimas, suteiktas modulyje, kuriame jos buvo iš pradžių apibrėžtos. Vietiniai pavadinimai naudojami instrukcijoms ir duomenims, nurodytiems tik modulyje.

Ne visi susieti kodai yra saugomi kaip objektų failai. Bibliotekos yra iš anksto sudarytų veiksmų rinkiniai, kurie saugomi kaip objekto kodas. Jie sukuriami panašiai kaip objektų failai ir yra naudingi dažnai vadinamoms procedūroms saugoti. Kai nuoroda neranda nuorodos kituose objekto failuose, ji automatiškai jos ieškos bibliotekos faile. Dauguma programavimo kalbos įgyvendinimų turi standartinę funkcijų biblioteką.

Naudojant dinaminį susiejimą, objekto failą vienu metu gali naudoti kelios vykdančios programos. Vietoj susiejimo objekto kodo susiejimo su programa, jis yra nuskaitomas, kai programa įkeliama arba vykdymo metu, kai nurodoma procedūra. „Windows®“ aplinkoje jos vadinamos dinaminių nuorodų bibliotekomis ir žymimos plėtiniu „.dll“. Sistemos, panašios į Unix®, šio tipo failus dažnai vadina dinaminiu bendrinamu objektu (DSO). Šio tipo objekto failas taip pat gali būti įdiegtas naudoti su tam tikra programa ir būtų tos programos diegimo dalis.