【问题标题】:Are all OS libraries (given linux distro) ABI compatible?所有操作系统库(给定 linux 发行版)ABI 都兼容吗?
【发布时间】: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


【解决方案1】:

是否保证操作系统安装的库(例如使用 apt-get)是使用相同的编译器编译的(因此它们是二进制兼容的)?

根本没有

您可以在同一系统上安装 GCC-5.5、GCC-6.4、GCC-7.3 和 GCC-8.2。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-24
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 2017-11-25
    • 1970-01-01
    相关资源
    最近更新 更多