Linker je komponenta kompilátoru, která se používá ke spojení několika souborů objektového kódu z různých zdrojů do jednoho spustitelného souboru. Jeho hlavním účelem je vyřešit odkazy mezi soubory (rozlišení symbolů) a provést přemístění paměťových segmentů, aby byla všechna data v programu správně propojena.
Linkery se používají na mnoha platformách, ale převládají zejména v souvislosti s osobními počítači (PC). Často se používají v procesu vývoje aplikací a slouží k uspořádání velkého množství kódu do menšího a kompaktnějšího souboru.
Linkery jsou obvykle součástí balíčku kompilátoru a lze je také použít k propojení knihoven, a to jak z vývojového prostředí (statické linkování), tak možná z jiných knihoven (dynamické linkování).
Hlavní fáze úpravy odkazu jsou:
1. Vyhledávání v knihovně – Prohledávání seznamu knihoven za účelem nalezení potřebného kódu.
2. Rozlišení symbolů – Řešení odkazů mezi objekty a jejich implementace.
3. Spojení objektového kódu – Sloučení objektových programů do jednoho spustitelného programu.
4. Přemístění adresy – Úprava referencí v kódu v případě, že načtené segmenty nejsou umístěny na stejných adresách paměti, jak je uvedeno v kódu.
5. Informace o ladění – Generování informací o ladění pro snadnější ladění.
Linkery mohou také provádět úkoly, jako je spouštění dalších skriptů pro provedení další konfigurace, přidání bezpečnostních kontrol do aplikace a zajištění kompatibility s jinými platformami.
Počítačové viry byly také vytvořeny pro škodlivé účely, konkrétně pro infikování a propojení škodlivého kódu s existujícími programy. Proto je jedním z nejdůležitějších úkolů linkeru zajistit bezpečnost a zabezpečení propojeného programu.