修复libc.so.6意外的reloc类型0x25

时间:2014-05-30 15:40:25

标签: shared-libraries glibc libc suse gcc4.9

我试图在没有互联网连接的SUSE系统上安装gcc4.9。我在Ubuntu机器上编译gcc并将其安装到前缀中,然后将前缀文件夹复制到SUSE机器。当我试图运行它时,gcc抱怨没有找到GLIBC_2_14,所以我在线下载了一个rpm for libc6并将其包含在前缀文件夹中。我的LD_LIBRARY_PATH包含前缀/ lib和前缀/ lib64。当我尝试立即运行任何程序时(lscpcat等),我收到错误error while loading shared libraries: /home/***/prefix/lib64/libc.so.6: unexpected reloc type 0x25

有什么方法可以解决这个问题,这样我就可以在这个系统上启动并运行gcc4.9了吗?

作为替代方案,是否可以构建gcc staticaly以便在我在计算机之间传输时不必担心链接?

1 个答案:

答案 0 :(得分:0)

  

我的LD_LIBRARY_PATH包含前缀/ lib和前缀/ lib64

请参阅this answer,了解为何无法解决此问题。

  

有什么方法可以解决这个问题,这样我就可以在这个系统上启动并运行gcc4.9了吗?

最好的办法是安装SuSE系统附带的任何GCC软件包,然后使用 GCC配置并安装gcc-4.9。

如果由于某种原因你无法做到这一点,this answer有一些方法可以在较新的系统上构建gcc-4.9并让它仍然适用于较旧的系统。

  

是否可以构建gcc staticaly,以便在我在计算机之间传输时不必担心链接?

与流行的看法相反,完全静态二进制文件通常 可移植,而不是Linux上的动态二进制文件。