我试图在没有互联网连接的SUSE系统上安装gcc4.9。我在Ubuntu机器上编译gcc并将其安装到前缀中,然后将前缀文件夹复制到SUSE机器。当我试图运行它时,gcc抱怨没有找到GLIBC_2_14,所以我在线下载了一个rpm for libc6并将其包含在前缀文件夹中。我的LD_LIBRARY_PATH
包含前缀/ lib和前缀/ lib64。当我尝试立即运行任何程序时(ls
,cp
,cat
等),我收到错误error while loading shared libraries: /home/***/prefix/lib64/libc.so.6: unexpected reloc type 0x25
。
有什么方法可以解决这个问题,这样我就可以在这个系统上启动并运行gcc4.9了吗?
作为替代方案,是否可以构建gcc staticaly以便在我在计算机之间传输时不必担心链接?
答案 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上的动态二进制文件。