Clang не компилирует код для платформ, отличных от x86

Я нахожусь под Ubuntu 12.04 x86 64 бит, я скомпилировал 32-битную версию llvm/clang из официального хранилища SVN успешно.

Я сейчас пытаюсь скомпилировать код C ++ для ARM, на данный момент меня не волнуют версии платформ, такие как armv5 против 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 только под MAC OS X / Darwin и не должен работать на ARM под другими ОС.

Как я могу скомпилировать для ARM с Clang и каков выход llvm-config --targets-built действительно о?

10

Решение

-Арка только для Дарвина. Вы должны использовать -target на не-darwin платформах. Также можно скомпилировать llvm / target, указав целевой триплет, или создать ссылку из clang в -clang. В вашем случае целевой триплет будет arm-none-linux-gnueabi

8

Другие решения

Других решений пока нет …