Повторная ссылка на приложения, которые используют обновленную общую библиотеку с неявным связыванием

Допустим, я изменил общую библиотеку и перекомпилировал ее.
Нужно ли повторно связывать все основные приложения, которые используют эту общую библиотеку (в случае, если я использую эту общую библиотеку с неявным связыванием - #include "myLib.h") или перепроверка выполняется автоматически при загрузке этих приложений?

2 ответа

Решение

Перекомпилировать нужно только в том случае, если двоичный интерфейс приложения (ABI) библиотеки несовместим с предыдущей версией - это может произойти, если некоторые публичные функции будут удалены или их сигнатура будет изменена, если будут изменены размеры некоторых структур, изменен порядок виртуальных функций и некоторые другие случаи.

В противном случае вам не нужно повторное связывание - это одно из основных преимуществ использования разделяемых библиотек, позволяющее распространять их новые версии без распространения новых версий приложений.

Вы не должны переподключаться. Общие библиотеки автоматически связываются при запуске программы. Не думайте об этом, как о "ре"-связи, они физически не связаны в первую очередь.

Другие вопросы по тегам