【问题标题】:Why can I not build a lower version compiler为什么我不能构建低版本的编译器
【发布时间】:2012-02-03 14:28:05
【问题描述】:

我目前正在尝试在新更新的 ubuntu 11.10 上构建 gcc 4.4。但是,在尝试引导时,构建编译器总是会失败并出现一些问题。

找不到第一个 crti.ocrtn.o。我将它们符号链接到搜索路径中的另一个目录中,因此我可以获得一个引导编译器。但是现在它失败并显示消息:

configure: error: C compiler cannot create executables

我尝试在一个简单的测试程序上使用中间编译器,我得到消息:

$ ./host-x86_64-unknown-linux-gnu/prev-gcc/xgcc test.c
xgcc: error trying to exec 'cc1': execvp: File or directory not found

所以看起来我的中间编译器的路径严重搞砸了。当我在 ubuntu 11.04 上做同样的事情时,一切正常。

我使用以下命令行进行配置:

./configure --prefix=/opt --program-suffix=44

我还尝试了 VPATH 构建和源代码构建,但两者都有相同的问题。我仍然在/opt 中保留更新前的 gcc44,但自更新后它已无法使用。

有什么简单的方法可以让 gcc 4.4 在 Ubuntu 11.10 下运行?我不必是自建编译器,如果我可以下载一个包并安装它,那也很好。

【问题讨论】:

  • 检查您的 configure.log - 它可能会给您更多的诊断信息...
  • 我确实看过那里...但是感谢您的信息,我再次仔细查看了正确的 config.log,发现另一个 crt?.o 文件在更新期间似乎没有正确链接.现在它似乎起作用了(至少乍一看)。
  • 另一个猜测:你可能缺少 libc6-dev(安装为#apt-get install libc6-dev
  • 另一件让我觉得非常奇怪的事情是,根据 config.log,系统无法正确识别并设置为x86_64-unknown-linux-gnu。 gcc 4.5 也是为Ubuntu/Linaro 构建的。 11.10 不应该是Ubuntu/Oneiric 吗?不知何故,我认为更新期间发生了一些非常糟糕的事情。
  • 是的,有传言说不希望将 Ubuntu 更新到非 LTS 版本。

标签: gcc cross-compiling


【解决方案1】:

这是由 Ubuntu 切换到多架构造成的。基本上所有“标准”路径都已更改,因此您可以在同一台机器上安装多个架构的库而不会发生任何冲突。

当然,Ubuntu GCC 已经修复了这个问题,但是我上次检查时上游编译器仍然没有修复。

请看这里:https://askubuntu.com/questions/69365/cant-build-gcc-anymore-since-upgrade-to-11-10

【讨论】:

  • 现在可以使用了。我只是将适当的crt*.os 符号链接到/lib。这有点 hack,因为我通常不喜欢手动链接系统目录中的东西,但现在它似乎工作。我将查看链接,看看该分辨率是否更适合。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-08
  • 2023-03-28
  • 1970-01-01
  • 2018-09-23
  • 1970-01-01
  • 2021-04-14
相关资源
最近更新 更多