Linker

Słownik kwalifikacji INF.04 - Projektowanie, programowanie i testowanie aplikacji

Co to jest linker?

Linker (konsolidator) to program, który łączy różne części programu w jedną całość gotową do uruchomienia. Działa zwykle po etapie kompilacji.

Kompilator tłumaczy kod źródłowy na kod pośredni lub obiektowy, natomiast linker łączy powstałe pliki obiektowe oraz potrzebne biblioteki.

Rola linkera

Linker odpowiada m.in. za:

  • połączenie wielu plików obiektowych w jeden program,
  • rozwiązanie odwołań do funkcji i zmiennych z innych plików,
  • dołączenie bibliotek statycznych lub wskazanie bibliotek dynamicznych,
  • utworzenie pliku wykonywalnego, np. .exe w systemie Windows.

Przykład

W języku C/C++ program może składać się z kilku plików:

// main.cpp
int dodaj(int a, int b);

int main() {
    return dodaj(2, 3);
}
// matematyka.cpp
int dodaj(int a, int b) {
    return a + b;
}

Kompilator osobno przetwarza pliki źródłowe, a linker łączy je tak, aby funkcja dodaj() była dostępna w programie głównym.

Linker a kompilator

Nie należy mylić linkera z kompilatorem. Kompilator przekształca kod źródłowy, a linker łączy elementy programu. W praktyce wiele środowisk programistycznych wykonuje oba etapy automatycznie, dlatego użytkownik często widzi tylko jeden przycisk „Build” lub „Uruchom”.