Clang没有为X86以外的其他平台编译代码



我在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

最新更新