使用交叉编译器为arm编译本机GCC

时间:2011-10-05 15:21:54

标签: linux gcc arm native cross-compiling

我希望为ARM系统创建一个GCC的本机构建,但我遇到了一些麻烦。构建机器是i686-linux。我看到的每个教程都告诉我如何设置实际的交叉编译套件(我已经使用crosstools-ng完成了)。但是,我没有看到任何与编译本机ARM GCC相关的内容。我使用的配置字符串如下,我只使用标头设置了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/

海湾合作委员会将建立一段时间,但随后就死了:

  

检查目标文件的后缀... configure:error:无法计算目标文件的后缀:无法编译。

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

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

1 个答案:

答案 0 :(得分:2)

查看config.log文件(可能不是顶级文件)并查看测试失败时尝试执行的操作。只需要查看cannot compute suffix消息,你应该找到正确的位(它不会在文件的末尾)。

请注意,如果要构建跨本机工具链,则需要在路径上使用arm-unknown-linux-gnueabi-gcc。即你需要一个交叉编译器来构建跨本机编译器。