gpt4 book ai didi

c++ - Clang 不为 x86 以外的平台编译代码

转载 作者:可可西里 更新时间:2023-11-01 16:07:45 25 4
gpt4 key购买 nike

我在 Ubuntu 12.04 x86 64 位下,我已经成功地从官方 svn 存储库编译了一个 32 位版本的 llvm/clang

我现在正在尝试为 ARM 编译 C++ 代码,此时我不关心平台版本,如 armv5 vs armv7a,我专注于平台切换如何为 clang 工作:

llvm-config --targets-built
ARM CellSPU CppBackend Hexagon Mips MBlaze MSP430 NVPTX PowerPC Sparc X86 XCore

但是下面的命令不起作用

clang++ -arch arm soft.cpp -o soft_ARM

输出是

clang-3: warning: argument unused during compilation: '-arch arm'

我也尝试过类似 gcc 的变体或其他组合,例如 -arch=arm-arch=armv7a-march=armv5但似乎没有任何效果。

阅读一些文档后,我注意到 clang 仅适用于 MAC OS X/Darwin 下的 ARM,它不应该适用于其他操作系统下的 ARM。

我如何使用 clang 为 ARM 编译以及 llvm-config --targets-built 的输出到底是什么?

最佳答案

-arch 是 darwin 独有的特性。您应该在非 Darwin 平台上使用 -target。或者,编译 llvm/target 指定目标三元组或创建从 clang 到 -clang 的链接。在您的情况下,目标三元组将是 arm-none-linux-gnueabi

关于c++ - Clang 不为 x86 以外的平台编译代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13221693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com