我正在寻找为 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/