Połączenie statyczne i dynamiczne
Istnieją dwa typy plików binarnych: połączone statycznie i dynamicznie. Najpierw o połączonych statycznie : gdy program chce wywołać funkcję biblioteki, odnosi się do niej po nazwie. Podczas budowania programu ze źródła wszystkie funkcje biblioteczne używane w programie są kopiowane z biblioteki do programu. Następnie program zawiera własny kod oraz kod funkcji bibliotecznych, z których korzysta. Następnie w miejscach wywoływania nazwa jest zmieniana na adres odpowiedniej funkcji w programie. Ten proces nazywa się łączeniem, ponieważ łączy nazwę funkcji z samą funkcją, jej implementacją. Nazywa się to statycznym , ponieważ łącza nie można zmienić po zbudowaniu programu.
Dynamicznie połączone programy działają inaczej: program odwołuje się także do funkcji bibliotecznych według nazwy. Podczas budowania programu, dwie listy są gromadzone i przechowywane razem z programem: lista funkcji bibliotecznych, w których miejscach są używane, oraz lista bibliotek, które zawierają funkcje używane przez program. To wszystko na budowę programu.
Później, w czasie wykonywania , specjalny program pomocniczy, tak zwany dynamiczny linker, wyszukuje w określonych miejscach w systemie plików każdą bibliotekę na liście bibliotek i ładuje ją do pamięci. Teraz dynamiczny linker wie, pod jakim adresem pamięci są dostępne funkcje biblioteki. Używa pierwszej listy do wpisania poprawnego adresu we wszystkich miejscach wywołujących funkcje biblioteczne. Następnie można uruchomić dynamicznie połączony program.