повторное связывание приложений, использующих обновленную общую библиотеку, с неявными ссылками? - PullRequest
2 голосов
/ 11 декабря 2010

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

Ответы [ 2 ]

1 голос
/ 12 декабря 2010

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

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

1 голос
/ 11 декабря 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...