0

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

有什么办法可以解决这个问题,以便我可以在这个系统上启动并运行 gcc4.9?

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

4

1 回答 1

0

我的 LD_LIBRARY_PATH 包括 prefix/lib 和 prefix/lib64

请参阅此答案以解释为什么这不起作用。

有什么办法可以解决这个问题,以便我可以在这个系统上启动并运行 gcc4.9?

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

如果由于某种原因你不能这样做,这个答案有一些方法可以让你在较新的系统上构建 gcc-4.9 并让它在旧系统上仍然有效。

是否可以静态构建 gcc,以便在计算机之间传输时完全不用担心链接?

与普遍的看法相反,完全静态的二进制文件在 Linux 上的可移植性通常不如动态二进制文件。

于 2014-06-01T02:29:53.417 回答