gcc 可以在不交叉编译的情况下为 Arm 生成二进制文件吗

map*_*una 1 linux gcc arm gnu-toolchain linux-toolchain

我们是否可以配置运行在 intel x64 架构上的 gcc 来为 ARM 芯片生成二进制文件,只需将一些标志传递给 gcc,而不使用交叉编译器。

Nor*_*nge 5

短:没有

编译器: gcc 不是本机交叉编译器,必须在编译 gcc 时指定目标体系结构。(有一些例外情况,例如可以同时支持 x86 和 x86_64)

clang 将是一个本机交叉编译器,您可以通过传递 -target=arm-linux-gnu 来生成 arm 代码,但您仍然无法生成二进制文件,因为您还需要链接器和 C 库。意味着您可以运行clang -target=arm-linux-gnu -c <your file>和编译 C/C++ 代码(可能需要将其指向您的 C/C++ 包含路径) - 但您无法构建二进制文件。

工具链的其余部分:您还需要一个合适的链接器和工具链,两者都特定于您想要运行的 架构和操作系统。

可能的解决方案: 获取合适的工具链,或编译自己的工具链。对于arm linux,你有ex。CrossToolchains如果您使用的是 debian,对于准系统,您可以从 codesourcery 获取交叉编译器。

由于你说的很模糊,所以无法给你更明确的答案