Compiler'ın optimize edilmiş SSA'yı makine kodu baytlarına dönüştürüp bunları nesne dosyalarına (.o) paketlediğini önceki yazıda görmüştük. Her .o dosyası, makine talimatları, sembol tanımları ve düzeltilmesi gereken adresleri işaretleyen yeniden konumlandırmalarla birlikte tek bir paketin derlenmiş kodunu içerir. Ancak programınız tek bir paketten ibaret değildir. Basit bir "hello world" bile fmt'i, o da io, os, reflect ve düzinelerce başka paketi içe aktarır. Her paket ayrı ayrı kendi nesne dosyasına derlenir ve bu dosyaların hiçbiri kendi başına çalışamaz. İşte burada linker devreye girer. Linker'ın görevi, tüm bu ayrı nesne dosyalarını alıp işletim sisteminizin çalıştırabileceği tek bir yürütülebilir dosyada (executable) birleştirmektir.
Linker, dört ana görev üstlenir. İlk olarak, Sembol Çözümlemesi yapar: Kodunuz fmt.Println'ı çağırır, ancak bu fonksiyon farklı bir nesne dosyasında tanımlıdır. Linker, bu dosyalar arası referansları bulur ve birbirine bağlar. Her nesne dosyası semboller (fonksiyonlar, global değişkenler vb. tanımlayan isimler) içerir. Bazı semboller dosyada tanımlanırken, diğerleri sadece referans alınır. Linker, tüm bu referansları tanımlarıyla eşleştirmek için bir "Loader" yardımıyla programdaki her sembolün tam bir resmini oluşturur. İkinci olarak, Yeniden Konumlandırma (Relocation): Makine kodundaki yer tutucu adresleri, her şeyin bellekte nerede yaşayacağı bilindiği anda gerçek adreslerle yamalar. Üçüncü olarak, Kullanılmayan Kod Eleme (Dead Code Elimination): Bir paketi içe aktarır ancak yalnızca bir fonksiyonunu kullanırsanız, linker kullanılmayan tüm fonksiyonları kaldırarak ikili dosyanızın boyutunu küçük tutar. Son olarak, Yerleşim ve Yürütülebilir Dosya Üretimi: Linker, her kod ve veri parçasının bellekte nerede yaşayacağına karar verir ve ardından işletim sisteminizin beklediği biçimde (Linux'ta ELF, macOS'ta Mach-O, Windows'ta PE) bir yürütülebilir dosya yazar.
Linker, derlenmiş kod parçalarını bir araya getirerek bir programın çalışabilir hale gelmesini sağlayan kritik bir araçtır.