不支持arm-unknown-elf配置 - ARM工具链

4

我想在我的Ubuntu Linux电脑上安装GNU ARM工具链。我已经下载了

tar -xvf gcc-4.8.2.tar.bz2
tar -xvf binutils-2.24.tar.bz2
tar -xvf newlib-2.1.0.tar.gz 
tar -xvf insight-6.8.tar.bz2 

我提取了它们。我首先成功安装了binutils。在第二步中,我打算建立第一个gcc引导安装程序,以便依次编译newlib(在下一步中)。但是无论如何,我都无法成功安装gcc:

sudo ../gcc-4.8.2/configure --target=arm-elf --prefix=/opt/gnuarm --enable-interwork --enable-multilib --enable-languages="c,c++" --enable-target-optspace --with-float=soft --with-newlib --with-headers=../newlib-2.1.0/newlib/libc/include/ --disable-nls 

程序一直运行,直到我收到以下错误消息:

//... a lot of checkings...
checking for clock_t... yes
checking for F_SETLKW... yes
checking if mkdir takes one argument... no
*** Configuration arm-unknown-elf not supported
make: *** [configure-gcc] Fehler 1

我很感激任何提示。提前致谢。 诚挚地,穆拉特


1
请参见:crosstool-ng。构建本地编译器相当简单。但是,在尝试为交叉编译器手动构建之前,请至少先使用一些脚本。Ubuntu应该已经有编译器了;尝试apt-cache search arm | grep gcc。您似乎已经掌握了概念,因此crosstool-ng可以快速为您提供适合您需求的编译器。 - artless noise
你的工具链的目标是什么?你是想构建Linux代码还是裸机代码? - unixsmurf
你可能需要指定一个ABI,但我认为这应该在“elf”目标中得到覆盖。 - en4bz
1个回答

12

我通过选择另一个目标解决了它。问题在于,在gcc 4.7中,arm-elf已经过时,在4.8中被删除。因此,您必须使用较旧的gcc(4.6或更早版本)构建工具链,或者选择另一个目标。

我决定为-target = arm-none-eabi(嵌入式应用程序二进制接口)编译我的工具链,这应该适合我的目标。非常感谢。


我将目标更改为--target=arm-none-linux并且可以工作。 - Gabriel Ojomu
是的,对于OpenBSD 7.2,我通过使用configure的--build和--target选项将aarch64-unknown-elf更改为arm-none-eabi。(因此,在修补floor_log2、exact_log2等错误后,我可以构建gcc 4.3.4...) - user1742529
注意:默认目标aarch64-unknown-openbsd7.2无法使用gcc/egcc。 - user1742529
参见:https://dev59.com/9Ggu5IYBdhLWcg3wMkXF - user1742529

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接