Внесение изменений в динамические библиотеки (Shared Libraries)
Предположим, у нас есть программа на языке C, которая использует динамическую библиотеку.
Если мы внесем изменения в динамическую библиотеку и перекомпилируем ее, все программы, использующие эту библиотеку, автоматически получат эти изменения при следующем запуске. В случае статической библиотеки изменения становятся заметны только после перекомпиляции программы с новой версией библиотеки.
Если мы изменим код некоторых функций динамической библиотеки (без изменения сигнатур функций), добавим новые функции и т. д., то адреса этих функций изменятся.
Как программа, использующая нашу динамическую библиотеку, сможет снова найти эти функции без перекомпиляции и перелинковки? Если их адреса изменились.