【问题标题】:Installing an old version of gcc on linux-redhat在 linux-redhat 上安装旧版本的 gcc
【发布时间】:2013-11-28 18:12:33
【问题描述】:

为了编译一个旧的编译器,我使用了安装在我机器上的 gcc(gcc 版本 4.4.6)。

gcc v 4.4.6 编译器不支持旧编译器文件中的某些语法,并发出错误,例如:需要左值作为左操作数,错误:尝试使用中毒...等等。

上次有人编译他们使用 gcc 2.96 版的旧编译器时。 所以我下载了一些旧版本的 gcc(3.0 - 没有找到 2.96)并尝试从中构建二进制文件。

但是 - 我的机器是 x86_64 并且 3.0 编译器发出错误:

不支持配置 x86_64-redhat-linux-gnu

很自然 - 那时候还没有 x86_64。 欢迎任何建议。

更新: 我在 vertualBox 上安装了一个旧的 redhat 版本(5.7),它带有一个旧的 gcc 编译器(3.4.6)并试图编译交叉编译器。我的主机是 - i386-redhat-linux。现在,我没有收到此消息,并且开始编译交叉编译器,但是,当编译 unwind-dw2.c 文件时,我得到了下一个汇编程序错误:

/tmp/ccAk3sX0.s: Assembler messages:
/tmp/ccAk3sX0.s:259: Error: unrecognized instruction `addi r11,low(r0,.L47),r11'
/tmp/ccAk3sX0.s:736: Error: unrecognized instruction `addi r3,low(r0,.L327),r3'
/tmp/ccAk3sX0.s:1226: Error: unrecognized instruction `addi r3,low(r0,.L317),r3'
/tmp/ccAk3sX0.s:1739: Error: unrecognized instruction `addi r3,low(r0,.L412),r3'

所以我又卡住了……

【问题讨论】:

  • 避免这样做。或者在chroot-ed 环境中运行旧的 32 位 Linux 发行版。顺便说一句,您正在编译的“旧编译器”到底是什么???
  • 试图构建一个交叉编译器。编译器基于旧版本的 gcc (3.0)。我认为我需要安装某种库......我认为这些机器支持 32 位 - 但我不确定。会检查这个,但我认为不需要在 linux 上安装旧版本...
  • 有什么理由不使用最新的 GCC(例如 4.8 版)交叉编译器???
  • 原因是我有旧的交叉编译器源代码,我需要编译这些源代码才能使用交叉编译器箱。稍后我会将这些来源更新为最新的...
  • 不,编译最近的交叉编译器...(例如,从源代码编译 GCC 4.8,作为交叉编译器)

标签: linux gcc redhat


【解决方案1】:

在虚拟机中安装一个非常旧的 Linux 发行版。

【讨论】:

  • 请看我对 Basile Starynkevitch 的评论
  • 随意将时间浪费在不必要的事情上。
  • 好的 - 你确定这是唯一的方法吗?如果机器确实支持 32 位,您能否详细说明为什么它不起作用?
【解决方案2】:

在您的情况下,安装旧发行版比使用当前发行版更容易。 但是如果您有足够的时间,您可以尝试查找并安装所有需要的依赖项。顺便说一句,当前操作系统安装的稳定性存在风险。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-12
    • 2023-03-16
    • 2018-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    相关资源
    最近更新 更多