我可以使用gcc -march编译到其他ISA

时间:2012-02-22 20:05:06

标签: c gcc architecture compiler-construction

我自己的电脑配有英特尔酷睿i5。但是,如果我使用一些RISC ISA,我想知道程序集的样子,例如ARM或powerPC。

我可以使用其他微体系结构的ISA将C代码编译成汇编吗?

2 个答案:

答案 0 :(得分:3)

没有。 -march仅影响编译器将针对哪些子体系结构(例如,它是否将使用所有CPU上不可用的功能)。它不允许编译器完全为不同的体系结构构建代码。

您正在寻找的是交叉编译器 - GCC的副本,它是为x86(或其他)编译的,但编译为PowerPC / ARM / MIPS /无论代码。构建交叉编译器是一个复杂的过程,但有在线提供的说明。

答案 1 :(得分:2)

您需要为此构建(或安装)交叉编译器。给定的GCC版本仅针对一个CPU“系列”;例如,可以构建针对x86和x86_64的GCC编译器。但是你不能(据我所知)构建一个同时针对x86和PPC的GCC编译器。

可以运行在x86上输出PPC程序集的编译器 - 这称为交叉编译器。在您的发行版的软件包存储库中查找它们,或者使用crossdev之类的工具来使自己成为一个。