gcc可以为Arm生成二进制文件而无需交叉编译

时间:2016-11-06 13:27:17

标签: linux gcc arm gnu-toolchain linux-toolchain

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

1 个答案:

答案 0 :(得分:2)

简短:没有

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

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

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

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

由于你很模糊,不可能给你一个更明确的答案

相关问题