2012-11-04 11 views
10

Jestem pod Ubuntu 12.04 x86 64 bit, skompilowałem 32-bitową wersję llvm/clang z oficjalnego repozytorium svn.Clang nie kompiluje kodu dla platform innych niż x86

Jestem teraz próbuje skompilować kod C++ dla ARM, w tym momencie nie dbam o wersjach platformowych jak armv5 vs armv7a, jestem koncentrując się na tym, jak działa przełącznik platforma dla clang:

llvm-config --targets-built 
ARM CellSPU CppBackend Hexagon Mips MBlaze MSP430 NVPTX PowerPC Sparc X86 XCore 

ale następująca komenda nie działa

clang++ -arch arm soft.cpp -o soft_ARM 

wyjście jest

clang-3: warning: argument unused during compilation: '-arch arm' 

Próbowałem również warianty podobne do gcc lub inne kombinacje, takie jak -arch=arm, -arch=armv7a, -march=armv5, ale nic nie działa.

Po przeczytaniu niektórych dokumentów zauważyłem, że klang działa na ARM tylko pod MAC OS X/Darwin i nie powinien działać dla ARM w innym systemie operacyjnym.

Jak mogę skompilować dla ARM z clang i co tak naprawdę jest z wyjściem llvm-config --targets-built?

+0

właśnie skompilowałem 64-bitową wersję języka i zachowanie jest zawsze takie samo jak wcześniej. – user1797612

Odpowiedz

8

-arch jest funkcją darwin-only. Powinieneś użyć -target na platformach innych niż darwin. Alternatywnie, skompiluj llvm/target, określając docelowy triplet lub utwórz łącze z clang na -clang. W twoim przypadku docelowa trójka byłaby arm-none-linux-gnueabi

+0

nie działa, 'clang-3: ostrzeżenie: argument nieużywany podczas kompilacji: '-target = arm-none-linux-gnueabi'' – user1797612

+0

Och, przepraszam, powinien to być -rozwiń ramię-none-linux-gnueabi –

+0

1 krok mini forward, ale nie działa '/ usr/bin/as: nierozpoznana opcja '-mfloat-abi = softfp' clang-3: błąd: komenda assemblera nie powiodła się z kodem zakończenia 1 (użyj -v, aby zobaczyć wywołanie)' – user1797612

Powiązane problemy