【发布时间】:2018-10-26 13:12:33
【问题描述】:
使用不同编译器版本编译的库可能是二进制不兼容的 (Can you mix c++ compiled with different versions of the same compiler)。
是否保证操作系统安装的库(例如使用 apt-get)是使用相同的编译器编译的(因此它们是二进制兼容的)?
【问题讨论】:
-
当然不是,因为您可以注册各种存储库以供
apt工具套件使用。 -
官方repo怎么样?
-
可能没问题一般,但你不能依赖它,不能保证。至少在基于存储库的软件部署中存在最后一个令人讨厌的差距:当为这些存储库构建新版本的包时,通常会出现一个差距,即一些包已经构建和发布,而其他包仍在排队。这通常发生在更大的升级中。在这种情况下,您可以让一些包依赖于与 ABI 不兼容的其他包,除非所有依赖项都被痛苦地正确标记,通常情况并非如此。
标签: linux shared-libraries abi