Podstawowe narzędzia programistyczne 373
Konsolidator ld służy do łączenia plików- .o (generowanych przez gcc -c) z bibliotekami systemowymi, tworząc gotowe pliki wykonywalne. Większość linuksowych programów korzysta z dynamicznego łączenia ogólnodostępnych bibliotek, dlatego programy skompilowane na jednym systemie linuksowym mogą czasem odmówić działania na innym.
Konsolidator ld wie o udostępnianych przez system standardowych bibliotekach i stara się połączyć jc z plikami .o łączonego programu. Przykładowo, jeśli dysponujemy wygenerowanym przez qcc plikiem moduł.c, możemy przekształcić go w wykonywalny plik, wpisując:
ld -o mojprogram moduł.o
ld dołączy do pliku moduł.o (dynamicznie) standardowe biblioteki systemowe, ograniczając, o ile to możliwe, wielkość gotowego programu. Jeśli chcemy, aby program dzia łał na wszystkich wersjach systemu 1 inux, niezależnie od w-ykorzyslyu-anych bibliotek, musimy zastosować łączenie statyczne:
ld -Bstatic -o mojprogram moduł.o
W tym przypadku plik wynikowy będzie jednak dużo większy niż jego wersja dynamiczna.