单个 gcc 可以为 x86、arm、ppc 等多个目标生成可执行文件吗?

can single gcc generate executable for multiple targets like x86,arm,ppc?

我们想为多个目标使用一个 gcc。是否可以从源代码构建以支持多个目标?

答案是否定的,你不能用 gcc 做到这一点。你可以使用一些交叉编译器来实现这个目标。

但是如果你真的需要这样做,你可以使用clang编译器。这是 link:

https://clang.llvm.org/docs/CrossCompilation.html

正在为 Gabriel 添加答案。您上面提到的所有架构都是不同的CPU。

无法使用 gcc 编译器生成不同的二进制文件。 您需要为每个生成相应兼容代码的编译器提供不同的工具链。

x86、PPC 和 ARM 是不同的机器。您无法 运行 使用主机工具链构建的代码。


下面提供的参考使用机器特定的工具链而不是 host-gcc。这是非常麻烦且不直接的方法。

出于好奇,您可以看看 bitbakeparallel build of multiple machines

我还要补充一点,要拥有一个有用的工具链,您还需要构建除 GCC 之外的其他组件。组件,如汇编器和链接器(例如来自 binutils)和 C 库(例如 glibc、musl、newlib 等)。每个这样的组件都需要针对特定​​目标进行配置