【问题标题】:How does program depend on shared library in Linux?程序如何依赖 Linux 中的共享库?
【发布时间】:2019-11-13 04:54:55
【问题描述】:

我被告知共享库相对于静态库的优势在于,如果我修改库源代码,则必须只重建共享库,而在使用静态库的情况下必须重建库和程序。

今天,我对库进行了一些更改并重建了 *.so 文件。但是,程序加载新的共享库并崩溃,我必须使用新的共享库重建程序才能使其工作。所以我的问题是:

1) 程序如何加载共享库?为什么我必须重新构建程序?

2) 其他依赖于修改库的库怎么样,我也必须重建它们吗?

【问题讨论】:

    标签: linux shared-libraries


    【解决方案1】:

    在旧程序中使用新的共享库时,对于共享库可以进行哪些更改以避免破坏 ABI 兼容性,有一些规则。例如,它可以添加新函数和更改现有函数的主体,但不能删除函数或更改现有函数的签名。当其他人创建共享库时,他们会通过版本控制为您跟踪这些内容。如果您要自己制作,则需要自己跟踪。

    【讨论】:

      猜你喜欢
      • 2012-08-11
      • 2015-03-05
      • 1970-01-01
      • 2011-10-01
      • 2021-04-23
      • 1970-01-01
      • 2011-12-31
      • 2012-02-24
      • 2012-06-19
      相关资源
      最近更新 更多