![如何在 ARM 系统上获取可运行的 gcc 4.9](https://linux22.com/image/1202441/%E5%A6%82%E4%BD%95%E5%9C%A8%20ARM%20%E7%B3%BB%E7%BB%9F%E4%B8%8A%E8%8E%B7%E5%8F%96%E5%8F%AF%E8%BF%90%E8%A1%8C%E7%9A%84%20gcc%204.9.png)
我有一个装有 Ubuntu 14.0.4 的 ARM 系统,我需要一个可以运行的gcc
4.8。我很遗憾地得知,根据http://ports.ubuntu.com/ubuntu-ports/dists/trusty/main/binary-armhf/Packages.gz没有gcc-4.9
适用于 ARM 的软件包,只有gcc-4.9-base
。安装后没有gcc
二进制文件。
于是我开始自己构建它(使用现有的 gcc-4.8)。 configure 脚本很乱;make
由于缺少未检查的依赖项,几个脚本失败了configure
。可以解决,但最后我遇到了
In file included from ./bconfig.h:3:0,
from ../.././gcc/inchash.c:21:
./auto-host.h:2359:16: error: declaration does not declare anything [-fpermissive]
#define rlim_t long
^
这个问题在搜索引擎中出现过几次,但要么是一个应该已经修复的错误,要么有时可以通过配置选项来解决,但这些对我来说都不起作用。
问题:我应该怎么做才能获得 gcc 4.9:
- 继续自己构建(如果是,怎么做?)
- 安装二进制包(我在哪里可以得到 armgf 的包?)
- 使用 debian 软件包(是的,debian 有一个 arm 二进制软件包!),但我担心未来使用来自不同发行版的如此重要的软件包可能会出现问题
- 您还有什么建议?
答案1
显然 ./configure 脚本是错误的,并且对一些生成的头文件做出了冲突的定义或者错误地设置了一些 HAVE_* 宏。
这表明配置有问题。您应该检查 INSTALL 目录中的文档,以找出需要指定哪些选项才能进行编译。
构建交叉编译器可能比较棘手。
答案2
我通过安装 Debian 而不是 Ubuntu 解决了这个问题。Debian 版本只有在所有平台上测试过后才会发布,而 Ubuntu 社区似乎完全专注于 x86 和 amd64。
我对未来读者的建议是:不要浪费时间在不同平台上调试 Ubuntu 问题,切换到 Debian 或做你自己的 Yocto 或 Buildroot 事情。