我在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
的输出是什么?
答案 0 :(得分:8)
-arch是仅限darwin的功能。您应该在非达尔文平台上使用-target。或者,编译llvm / target指定目标三元组或创建从clang到-clang的链接。在你的情况下,目标三元组将是arm-none-linux-gnueabi