Objektový modul (také - objektový soubor , anglicky object file ) - soubor s přechodnou reprezentací samostatného programového modulu, získaný jako výsledek zpracování zdrojového kódu kompilátorem . Objektový soubor obsahuje speciálně připravený kód (často nazývaný binární nebo binární ), který lze zkombinovat s jinými objektovými soubory pomocí linkeru ( linkeru ) a získat tak hotový spustitelný modul nebo knihovnu.
Objektové soubory jsou bloky strojového kódu a dat s nedefinovanými adresami odkazů na data a procedury v jiných objektových modulech a také seznam jejich procedur a dat. Linker sestaví kód a data každého objektového modulu do konečného programu a vypočítá a naplní křížové adresy mezi moduly. Propojení se statickými knihovnami se provádí linkerem nebo linkerem (což může být samostatný program nebo část kompilátoru), zatímco propojení s operačním systémem a dynamickými knihovnami se provádí za běhu, po načtení programu do paměti.
Programátor generuje objektový kód pomocí kompilátoru nebo assembleru. Například v Linuxu kompilátor GNU Compiler Collection vygeneruje soubory .o, které používají formát ELF. Kompilace v systému Windows vytvoří soubory .obj ve formátu COFF. Linker se pak používá ke spojení objektového kódu do jediného spustitelného programu nebo knihovny, přičemž se podle potřeby extrahují předkompilované systémové knihovny.
Existuje mnoho různých formátů objektových souborů; původně měl každý typ počítače svůj vlastní jedinečný formát, ale s příchodem Unixu a dalších přenosných operačních systémů byly některé formáty jako ELF a COFF definovány a používány na různých typech systémů. Stejný formát lze použít jak pro vstup, tak pro výstup linkeru a tím i formát knihovny a spustitelného souboru. Některé formáty mohou obsahovat strojový kód pro různé procesory, přičemž správnou variantu zvolí operační systém při načítání programu [1] .