重新链接使用隐式链接的更新共享库的应用程序?

时间:2010-12-11 17:32:59

标签: c++ unix shared-libraries

假设我更改了一个共享库并重新编译它 我是否必须重新链接使用该共享库的所有主要应用程序(如果我使用具有隐式链接的共享库 - #include "myLib.h"),或者在这些应用程序加载时自动完成重新链接?

2 个答案:

答案 0 :(得分:1)

你不应该重新链接。程序启动时,共享库会自动链接。不要认为它是“重新”链接,它们首先没有物理联系。

答案 1 :(得分:1)

只有当库的Application Binary Interface (ABI)与先前版本不兼容时才需要重新编译 - 如果删除某些公共函数或更改其签名,如果某些结构的大小发生更改,则可能会发生这种情况,虚函数顺序改变了一些其他情况。

否则您不需要重新链接 - 这是使用shared libraries的主要优势之一,允许在不分发新版本应用程序的情况下分发它们的新版本。