交叉编译gcc

Non*_*one 5 c c++ gcc makefile cross-compiling

我按照此处的说明进行交叉编译 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
Run Code Online (Sandbox Code Playgroud)

这对我来说没有意义,因为它说 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
Run Code Online (Sandbox Code Playgroud)

如何交叉编译 GCC?

bst*_*rre 4

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

仔细观察,您会注意到他们是configure从gcc 源代码树外部运行命令。

如果您的平台受其支持,则crosstool 脚本(也可以从说明页面底部链接)非常有帮助。

编辑:正如potatoswatter 在评论中指出的那样,您的安装此时可能已完成。删除整棵树并从头开始。(听起来似乎需要太长的时间,你会想走捷径,但如果你现在从头开始,最终会更快。)

  • crosstool-ng 是 crosstool 的积极维护的重写 http://ymorin.is-a-geek.org/projects/crosstool (2认同)