【发布时间】:2020-06-21 18:10:25
【问题描述】:
我想使用一个使用 glibc2.14 的 SDK/库。我的机器有glibc2.12。我在一个单独的位置安装了 glibc2.14。通过使用编译选项 --rpath 在我的可执行文件中使用了 SDK,它运行良好。
现在,我想在共享对象二进制文件 (.so) 中使用 SDK(使用 glibc2.14)。我尝试了 --rpath 和 --dynamic-linker 选项,但未加载共享对象,它在运行时给我一个错误 -
/lib64/libc.so.6: version ``GLIBC_2.14'' not found (required by /usr/local/lib/libsdk.so.1).
如何让共享对象二进制查看glibc2.14?
【问题讨论】:
-
我强烈建议不要尝试使用定制的 glibc。发行版应用了各种补丁和自定义,尝试构建自己的可能会导致损坏的库无法与系统上的其他任何东西一起使用。
-
我已将它安装在不同的位置,据我了解,只有明确指向该位置的应用程序才会使用其他 glibc。
-
这可能是真的,但是您构建的版本可能与您的发行版编译的其他 glibc 二进制文件的 ABI 不兼容(听起来不兼容),因此请使用系统上的任何其他共享库可能会也可能不会。最好只升级您的操作系统。
标签: linux shared-libraries glibc