假设我更改了一个共享库并重新编译它
我是否必须重新链接使用该共享库的所有主要应用程序(如果我使用具有隐式链接的共享库 - #include "myLib.h"
),或者在这些应用程序加载时自动完成重新链接?
答案 0 :(得分:1)
你不应该重新链接。程序启动时,共享库会自动链接。不要认为它是“重新”链接,它们首先没有物理联系。
答案 1 :(得分:1)
只有当库的Application Binary Interface (ABI)与先前版本不兼容时才需要重新编译 - 如果删除某些公共函数或更改其签名,如果某些结构的大小发生更改,则可能会发生这种情况,虚函数顺序改变了一些其他情况。
否则您不需要重新链接 - 这是使用shared libraries的主要优势之一,允许在不分发新版本应用程序的情况下分发它们的新版本。