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

问题描述 投票:0回答:2

我自己的电脑有 Intel Core I5。但是,我想知道如果我使用某些 RISC ISA(例如 ARM 或 powerPC),程序集会是什么样子。

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

c gcc cross-compiling instruction-set
2个回答
3
投票

不。

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

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


2
投票

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

不过,您

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

© www.soinside.com 2019 - 2024. All rights reserved.