交叉编译gcc

时间:2010-08-16 02:38:58

标签: c++ c gcc makefile cross-compiling

我按照here的说明进行交叉编译GCC。我在Mac上。当我从gcc源文件夹运行此命令时:./configure --target=i586-elf --prefix=/usr/local/cross --disable-nls --without-headers --enable-languages=c,ada,c++,fortran,java,objc,obj-c++,treelang我收到此错误:configure: error: GMP 4.1 and MPFR 2.2.1 or newer versions required by fortran。当我将命令更改为此时(我无法编译GMP):./configure --target=i586-elf --prefix=/usr/local/cross --disable-nls --without-headers --enable-languages=c,ada,c++,java,objc,obj-c++,treelang我收到此错误:

The following requested languages could not be built: ada
Recognised languages are: c,ada,c++,fortran,java,objc,obj-c++,treelang

对我来说没有意义,因为它说ada被认可了。启用语言设置的所有其他配置(以及设置未更改且使用默认设置时)给出了以下错误:

/usr/local/cross/i586-elf/bin/ranlib ./libgcov.a
_error_not_here_yet - havent even thought about it - it may even work
make[1]: _error_not_here_yet: Command not found
make[1]: *** [treelang.all.cross] Error 127
make: *** [all-gcc] Error 2

如何交叉编译GCC?

1 个答案:

答案 0 :(得分:4)

您是否正在从gcc源代码树运行configure?如果是这样的话:不要这样做。按照您链接到的页面中的说明(逐字)。

仔细观察,你会发现他们正在运行来自外部的configure命令 gcc源代码树。

如果您的平台受其支持,则crosstool script(也在指示页底部链接)非常有用。

编辑:正如potatoswatter在评论中指出的那样,您的安装可能已经在这一点上进行了调整。删除整棵树,从头开始。 (听起来好像花了太长时间,而且你想要做一个捷径,但如果你现在从头开始,它会更快。)