"构建 GCC 交叉编译器"是什么意思?



我是Linux和GCC的新手。Raspberry Pi的价格吸引了我。我有兴趣使用GCC跨编译一些C代码以针对某些嵌入式硬件,特别是Cortex-M3 Micro。我最终想拥有一套完整的编译器/程序员/调试器,但是现在我从编译器开始。

所以我在RP3上进行了快速的非交叉编译测试,一切都很好。现在,我正在研究如何交叉编译和针对我的UC。在线GCC文档似乎表明我可以使用普通的Vanilla GCC,只需指定一些命令行选项以执行交叉汇编:https://gcc.gnu.org/onlinedocs/gcc/gcc/arm-options.html<>

但是,搜寻时,我发现很多人提到建立GCC交叉编译器。这是什么意思?

GCC是否可以选择将其作为交叉编译器?如果是这样,为什么一个人想要"构建"交叉编译器?

跨编译器是在机器类型A上创建的(硬件和O/S的组合),并且在其他机器类型B上运行,或者在A类型A上运行,但生产软件要在其他机器上运行B。

因此,如果您使用X86_64 CPU的Linux计算机并在某些版本的Linux上运行,但是您可以编译GCC,以便它在运行某些AIX版本的IBM PowerPC平台上运行,您将创建一个Cross-编译器。

另一个变体可能是使用Linux机上运行的X86_64 CPU在Linux上使用编译器,但生成了嵌入式硬件芯片的代码。然后,您将从Linux机器的CPU功率中受益,而部署到一个较小,功能较小的系统中,该系统可能没有其自己的O/S,或者只有最小的O/S。

最新更新