我在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工作,并且不应该在其他OS下为ARM工作。
我如何用clang编译手臂以及llvm-config --targets-built
的输出实际上是什么?
-ark是只有darwin的功能。您应该在非Darwin平台上使用-target。或者,编译LLVM/目标指定目标三重态或创建从Clang到-Clang的链接。在您的情况下,目标三重态将是无臂的linux-gnueabi