我在/ opt / local / var / macports / software的文件夹中找到了arm-none-eabi-binutils和arm-none-eabi-gcc
而在/ usr / bin文件夹中找到普通的binutils和gcc
两者之间有什么区别?
何时使用eabi-binutils和eabi-gcc?
他们是针对不同的架构吗?
答案 0 :(得分:0)
这些是MacPorts for ARM安装的交叉编译器(您有时必须运行port install arm-none-eabi-gcc
)。与通常为您的计算机生成代码的普通binutils
或gcc
不同,交叉编译器(及其在binutils中的关联工具)可以与另一种体系结构一起工作。
答案 1 :(得分:0)
是的。如果您输入
ll /usr/bin/gcc
,您会注意到它将象征性地链接到文件x86_64-linux-gnu-gcc-9
。该序列对应于编译器要使用的目标计算机(在构建gcc时确定)。您可以参考gcc文档以获取更多有关此的信息。
在这种情况下,x86_64-linux-gnu是您的目标计算机,而arm-none-eabi将为arm架构编译代码。除非您是为像微控制器这样的基于手臂的系统开发的,否则我无法现实地想到您需要它的情况。