【问题标题】:How compatible are different versions of glibc?不同版本的 glibc 的兼容性如何?
【发布时间】:2012-06-21 20:44:09
【问题描述】:

具体来说:

  1. 是否以某种方式确保所有版本的 glibc 2.x 都是二进制兼容的?

  2. 如果不是,我如何在我的系统上运行已针对不同版本编译的二进制文件(游戏)?我可以将 glibc 安装在不同的文件夹中吗?

我的具体问题是 glibc 2.14(我拥有的)和 2.15(游戏想要的)之间的兼容性。

我可能还会获得 glibc 2.13 的版本,但我不确定它是否会在 2.14 上运行。

【问题讨论】:

    标签: installation shared-libraries glibc binary-compatibility


    【解决方案1】:

    通常,运行为旧 glibc 版本(例如 2.13)编译的二进制文件将在具有较新 glibc 的系统(例如 2.14,例如您的系统)上运行良好。

    在具有较旧 glibc 的系统上运行为较新 glibc(例如 2.15,如失败的那个)构建的二进制文件可能无法正常工作。

    简而言之,glibc 是向后兼容的,而不是向前兼容的。

    【讨论】:

    • 这是否记录在任何地方?
    【解决方案2】:

    根据来自 Linux 上游跟踪器的the report,glibc 2.14 和 glibc 2.15 之间只有轻微的二进制兼容性问题。

    报告由 abi-compliance-checkerabi-tracker 工具生成。

    另见https://sourceware.org/glibc/wiki/Testing/ABI_checker

    【讨论】:

      【解决方案3】:

      请使用ABI compliance checker 检查库的兼容性。

      【讨论】:

      • 这看起来很有趣。有没有办法自动生成 XML 文件?
      • @Aaron:简单来说,XML 文件只包含共享对象和头文件的路径。当然,您可以通过一个简单的脚本自动生成它们。
      • @Aaron:另外,您可以使用模板:<headers>{RELPATH}/include/</headers><libs>{RELPATH}/lib/</libs> 和其他选项:-vnum1-vnum2-relpath1-relpath2
      猜你喜欢
      • 1970-01-01
      • 2015-01-26
      • 1970-01-01
      • 1970-01-01
      • 2017-05-21
      • 1970-01-01
      • 1970-01-01
      • 2019-08-27
      • 2013-05-08
      相关资源
      最近更新 更多