首页 > 解决方案 > 将库与较新的 GLIBC 依赖项链接

问题描述

我有一个编译为使用旧系统 GLIBC 2.15 (ld-linux.so.3 / ld-2.15.so) 的可执行文件,它是具有较新 GLIBC 2.20 依赖项的共享库的引导程序。

谁可以加载库并指示更改为更新的 GLIBC 链接器(ld-linux.so.3 / ld-2.20.so)?

标签: c++clinuxglibcdynamic-linking

解决方案


您可以升级系统 glibc,但这通常会使系统失去支持,因此它很少是合适的方法。

您可以自己编译 glibc,将其安装在非标准位置(例如/opt/gnu/glibc-2.27),然后以使用新 glibc 而不是系统 glibc 的方式链接您的应用程序。glibc wiki 包含带有所需链接器标志的说明:

如果您无法重新链接主程序,您将不得不使用显式加载程序调用,也许使用一个小的包装脚本,例如testrun.shglibc 自动生成的脚本。


推荐阅读