LLVM & Clang 无法编译支持的架构

新手上路,请多包涵

在 Ubuntu 64 位下我得到了

llc --version
LLVM (http://llvm.org/):
  LLVM version 3.1
  Optimized build with assertions.
  Built Oct 15 2012 (18:15:59).
  Default target: x86_64-pc-linux-gnu
  Host CPU: btver1

  Registered Targets:
    arm      - ARM
    mips     - Mips
    mips64   - Mips64 [experimental]
    mips64el - Mips64el [experimental]
    mipsel   - Mipsel
    thumb    - Thumb
    x86      - 32-bit X86: Pentium-Pro and above
    x86-64   - 64-bit X86: EM64T and AMD64

我不能这样做

clang -march=arm -x c++ /tmp/cpp.cpp
error: unknown target CPU 'arm'

我在这里遗漏了什么?为什么我不能为 ARM 编译?

原文由 user1849534 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

如此评论 所说,此选项目前在 linux 下尚不支持。

原文由 user1849534 发布,翻译遵循 CC BY-SA 3.0 许可协议

-march 是 LLVM 的内部工具命令行选项,根本与 clang 无关。如果需要为其他目标编译,则需要指定目标三元组。这可以通过多种方式完成(我不记得它们是否适用于 3.1,但它们肯定适用于 3.2):

  • 创建一个从 clang 到 your-target-triple-clang 的链接,例如 arm-none-linux-gnueabi-clang 并通过它编译所有内容
  • 提供 -target 选项,例如 clang -target arm-none-linux-gnueabi

原文由 Anton Korobeynikov 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题