【问题标题】:Can gcc produce binary for Arm without cross compilationgcc 可以在没有交叉编译的情况下为 Arm 生成二进制文件吗
【发布时间】:2016-11-06 13:27:16
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    简短:没有

    编译器: 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 获得交叉编译器。

    因为你说的很模糊,所以不可能给你更清楚的答案

    【讨论】:

      猜你喜欢
      • 2016-06-19
      • 2014-07-06
      • 1970-01-01
      • 2015-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-23
      相关资源
      最近更新 更多