首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从RHEL 6到RHEL 7使用libc和libm

从RHEL 6到RHEL 7使用libc和libm
EN

Stack Overflow用户
提问于 2020-07-10 11:56:04
回答 2查看 339关注 0票数 1

我的应用程序链接到构建在RHEL 6上的库。当我在RHEL 7上编译这个应用程序时,链接器会为glibc版本抛出错误。以下是错误之一:

对符号'__tls_get_addr@@GLIBC_2.12‘/ ld 64/ld-linux-x86-64.so.2的未定义引用:错误添加符号: collect2: collect2:ld返回1退出状态

为了修复,我将libc和libm从RHEL 6复制到RHEL 7,并将它们与libc和libm从RHEL 7链接到一起。如果我将libc和libm从RHEL 6复制到RHEL 7,会在运行时引起问题吗?还有其他方法可以解决这些问题吗?

谢谢你,曼戈什·萨温特。

EN

回答 2

Stack Overflow用户

发布于 2020-07-11 14:24:19

如果我将libc和libm从

6复制到RHEL 7,它会在运行时引起问题吗?

libc.so.6libm.so.6从RHEL6复制到例如~/rhel6/libs/tmp不会引起任何问题(您已经做过了)。

但是用RHEL6 6的副本覆盖RHEL6 7的/lib64/libc.so.6可能会使RHEL7系统上的每一个程序崩溃,并使该系统无法启动。确保您有备份和救援磁盘,并知道如何使用它,如果您决定尝试这一点。

还有其他方法来解决这些问题吗?

正确的处理方法是构建一个工具链,该工具链以期望的GLIBC为目标。更多信息,here

票数 1
EN

Stack Overflow用户

发布于 2020-07-14 07:42:59

虽然RedHatEnterpriseLinux6附带了glibc2.12,但它没有__tls_get_addr@GLIBC_2.12版本化的符号,只有__tls_get_addr@GLIBC_2.3。这个符号也出现在以后的glibc版本中。

我不认为你所面临的问题可以通过降级来解决。正如Employed Russian所说,覆盖系统glibc无论如何都会使系统无法启动。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62833802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档