Clang没有为x86以外的平台编译代码

时间:2012-11-04 18:49:47

标签: c++ arm llvm clang

我在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仅适用于ARM OS X / Darwin下的ARM,并且它不适用于其他操作系统下的ARM。

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

1 个答案:

答案 0 :(得分:8)

-arch是仅限darwin的功能。您应该在非达尔文平台上使用-target。或者,编译llvm / target指定目标三元组或创建从clang到-clang的链接。在你的情况下,目标三元组将是arm-none-linux-gnueabi