linux - 使用交叉编译器为 arm 编译 native GCC

标签 linux gcc arm native cross-compiling

我正在寻找为 ARM 系统创建 GCC 的 native 构建,但我遇到了一些麻烦。构建机器是 i686-linux。我看到的每个教程都告诉我如何设置实际的交叉编译套件(我已经使用 crosstools-ng 完成了)。但是,我没有看到任何与编译原生 ARM GCC 相关的内容。我使用的配置字符串在下面,我只使用 header 设置了 sysroot。我还交叉编译并安装了 GMP 和 MPFR。

../../gcc-4.3.5/configure \
    --host=arm-unknown-linux-gnueabi \
    --build=i686-build_pc-linux-gnu \
    --target=arm-unknown-linux-gnueabi \
    --prefix=/home/vm/gcc-native/sysroot \
    --with-sysroot=/home/vm/gcc-native/sysroot \
    --enable-shared --enable-threads --disable-libmudflap --disable-libssp \
    --disable-libgomp --disable-libstdcxx-pch --with-gnu-as --with-gnu-ld \
    --enable-languages=c,c++ --enable-symvers=gnu --enable-__cxa_atexit \
    --disable-nls --disable-multilib \
    --with-gmp=/home/vm/gcc-native/sysroot/ \
    --with-mpfr=/home/vm/gcc-native/sysroot/

GCC 会构建一段时间,但随后就死掉了:

checking for suffix of object files... configure: error: cannot compute suffix of object files: cannot compile.

我不确定这在我的系统上如何运行,因为我在 i686-linux 上构建并且目标/主机都是 arm-linux。我现在的想法是找到一个 ltib 发行版并查看 GCC 的规范文件并尝试遵循所有步骤。由于与 std namespace 冲突,ltib 为我的板提供的 GCC 无法在我的系统上编译。

任何信息/链接将不胜感激!

最佳答案

查看 config.log 文件(可能不是顶级文件),看看测试失败时它试图做什么。只需 grep 获取 cannot compute suffix 消息,您应该找到正确的位(它不会在文件末尾)。

请注意,如果您想构建一个跨原生工具链,您将需要在您的路径中某处有一个有效的 arm-unknown-linux-gnueabi-gcc。 IE。你需要一个交叉编译器来构建跨本地编译器。

关于linux - 使用交叉编译器为 arm 编译 native GCC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7663684/

相关文章:

ruby-on-rails - 每当 gem 时,crontab 都不工作

c - 展开循环并使用矢量化进行独立求和

linux - arm和x86之间的迁移过程

ruby - 将程序的输出获取到 Ruby 处理中

linux - 我怎样才能更改 gcc 在链接/bin/ld 时使用的库?

python - 如何删除其中包含特殊字符的行

c - 在运行时设置数组大小

python - 错误: command 'gcc' failed with exit status 1 while installing crf++

Linux CPU 使用工具

linux - 如何在 Linux 3.4 内核中禁用 cpu 内核?