GCC是否支持多种目标架构?

pts*_*pts 5 gcc cpu-architecture

是否可以编译gcc支持多目标体系结构的单个(前端)二进制文件,我可以在命令行中选择,如下所示:

$ gcc --architecture=linux-i386 ...
$ gcc --architecture=freebsd-arm ...
$ gcc --architecture=darwin-amd64 ...
Run Code Online (Sandbox Code Playgroud)

我知道可以将gcc构建为交叉编译器,但是可以使用命令行标志选择目标体系结构,而无需编写包装脚本来gcc为每个体系结构启动不同的二进制文件吗?

i386和amd64 -m32-m64似乎做的伎俩,但我怎么选择ARM等?请注意,-march=对我来说看起来毫无用处,我无法将其从i386更改为amd64.

小智 8

简短的回答是“不”,你不能。有一些交叉编译器的风格,但要使一个二进制文件能够支持一堆目标,它需要该工具的大小和系统头文件的要求非常庞大。

  • `clang` 做得很好,而且 gcc 也有一个(非常)长期的目标...... (4认同)