.---> Static
/
Linux libraries <
\ .---> Dynamic linking
\ /
`---> Shared <
\
`---> Dynamic loading
Staticky spojované (linking) programy
+-----------------+ +-----------------+
| Program X | | Program Y |
|-----------------| |-----------------|
|Statické knihovny| |Statické knihovny|
| (*.a) | | (*.a) |
+-----------------+ +-----------------+
Dynamicky spojované programy
+-----------------+ +-----------------+
| Program X | | Program Y |
+-----------------+ +-----------------+
+-----------------+
|Sdílené knihovny |
| (*.so) |
+-----------------+V případě statického spojování programu s knihovnami se spojování provádí v době překladu programu. Knihovna je součástí binárního souboru programu.
V případě dynamického spojování není knihovna součástí programu. V programu je jen seznam symbolů (proměnných a funkcí) které jsou definovány v knihovně. Při zavádění programu do paměti počítače zavaděčem tento vyhledá knihovnu a spojí symboly v programu s funkcemi a proměnnými v knihovně. Pokud je knihovna již v paměti, nemusí se zavádět znova. Všechny běžící programy tak sdílí jeden kód knihovny v paměti počítače.