Linker (konsolidator)

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

Co to jest linker?

Linker, nazywany też konsolidatorem, to narzędzie używane podczas budowania programu. Jego zadaniem jest połączenie wcześniej skompilowanych części programu oraz potrzebnych bibliotek w jedną całość, najczęściej w plik wykonywalny.

Co robi linker?

Linker nie interpretuje kodu źródłowego i nie wykonuje programu linia po linii. Działa zwykle po etapie kompilacji, gdy kod źródłowy został już przekształcony do postaci kodu obiektowego.

Do zadań linkera należy między innymi:

  • łączenie plików obiektowych, np. main.o i utils.o,
  • dołączanie funkcji z bibliotek,
  • rozwiązywanie odwołań do funkcji i zmiennych zdefiniowanych w innych plikach,
  • przygotowanie końcowego pliku wykonywalnego lub biblioteki.

Przykład sytuacji

Jeśli program w C++ korzysta z funkcji zapisanej w innym pliku, kompilator może poprawnie przetworzyć każdy plik osobno. Dopiero linker łączy te pliki tak, aby wywołanie funkcji prowadziło do właściwego miejsca w programie.

Linker a interpreter

To ważne rozróżnienie egzaminacyjne:

  • interpreter wykonuje kod w trakcie działania programu,
  • kompilator tłumaczy kod źródłowy przed uruchomieniem,
  • linker łączy skompilowane części programu i biblioteki.

Dlatego odpowiedź mówiąca o łączeniu kodu z bibliotekami nie opisuje interpretera, lecz właśnie linker.