单个 gcc 可以为 x86、arm、ppc 等多个目标生成可执行文件吗?
can single gcc generate executable for multiple targets like x86,arm,ppc?
我们想为多个目标使用一个 gcc。是否可以从源代码构建以支持多个目标?
答案是否定的,你不能用 gcc
做到这一点。你可以使用一些交叉编译器来实现这个目标。
但是如果你真的需要这样做,你可以使用clang
编译器。这是 link:
正在为 Gabriel 添加答案。您上面提到的所有架构都是不同的CPU。
无法使用 gcc 编译器生成不同的二进制文件。
您需要为每个生成相应兼容代码的编译器提供不同的工具链。
x86、PPC 和 ARM 是不同的机器。您无法 运行 使用主机工具链构建的代码。
下面提供的参考使用机器特定的工具链而不是 host-gcc。这是非常麻烦且不直接的方法。
出于好奇,您可以看看 bitbake
、parallel build of multiple machines
我还要补充一点,要拥有一个有用的工具链,您还需要构建除 GCC 之外的其他组件。组件,如汇编器和链接器(例如来自 binutils)和 C 库(例如 glibc、musl、newlib 等)。每个这样的组件都需要针对特定目标进行配置
我们想为多个目标使用一个 gcc。是否可以从源代码构建以支持多个目标?
答案是否定的,你不能用 gcc
做到这一点。你可以使用一些交叉编译器来实现这个目标。
但是如果你真的需要这样做,你可以使用clang
编译器。这是 link:
正在为 Gabriel 添加答案。您上面提到的所有架构都是不同的CPU。
无法使用 gcc 编译器生成不同的二进制文件。 您需要为每个生成相应兼容代码的编译器提供不同的工具链。
x86、PPC 和 ARM 是不同的机器。您无法 运行 使用主机工具链构建的代码。
下面提供的参考使用机器特定的工具链而不是 host-gcc。这是非常麻烦且不直接的方法。
出于好奇,您可以看看 bitbake
、parallel build of multiple machines
我还要补充一点,要拥有一个有用的工具链,您还需要构建除 GCC 之外的其他组件。组件,如汇编器和链接器(例如来自 binutils)和 C 库(例如 glibc、musl、newlib 等)。每个这样的组件都需要针对特定目标进行配置