C++ 动态链接到库升级
C++ dynamic linking to libraries upgrade
我有一个关于动态 linking 库的问题。
假设我有一个 libfoo.so
需要 libbar.so
。目前它 links 与 libbar.so.100
(版本 1.0.0)。 bar
、libbar.so.200
有新版本,foo
没有使用bar v2.0.0的任何新功能。它使用的 API 没有变化。
我可以直接升级到 libbar.so.200
并且可以 libfoo
动态地 link 吗?
这是ABI稳定性的问题。
通常,“主要”版本的库会破坏 ABI 稳定性,并且无法正常工作。这是区分主要版本和次要版本颠簸的一种常用方法;次要版本颠簸是向后兼容的,主要版本不是。
这两种方式都没有任何保证。许多小细节可能会影响其工作或不工作,并且需要库开发人员付出一些努力才能确保其工作。
我有一个关于动态 linking 库的问题。
假设我有一个 libfoo.so
需要 libbar.so
。目前它 links 与 libbar.so.100
(版本 1.0.0)。 bar
、libbar.so.200
有新版本,foo
没有使用bar v2.0.0的任何新功能。它使用的 API 没有变化。
我可以直接升级到 libbar.so.200
并且可以 libfoo
动态地 link 吗?
这是ABI稳定性的问题。
通常,“主要”版本的库会破坏 ABI 稳定性,并且无法正常工作。这是区分主要版本和次要版本颠簸的一种常用方法;次要版本颠簸是向后兼容的,主要版本不是。
这两种方式都没有任何保证。许多小细节可能会影响其工作或不工作,并且需要库开发人员付出一些努力才能确保其工作。