2013-02-04 18 views
22

Ist es möglich, Clang für Cross-Compiling für den ARM-Prozessor einzurichten? Der Host wird wahrscheinlich auf x86 (AMD64 - wahrscheinlich Ubuntu 12.04) sein und das Ziel wäre ARM (Raspberry Pi sowie Pandaboard - wird für jeden eine separate Kompilierung durchführen), ich möchte irgendwann auch die PowerPC-Architektur kompilieren ? Die Programmquelle ist in C.Clang Cross Kompilieren für ARM?

+0

Vielleicht hilft das [Ist Cross-Compiling für ARM auf x86 mit llvm/Clang möglich?] (Http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-June/050820.html) –

+0

http: //github.com/dwelch67/raspberrypi Ich habe Beispiele, die clang in diesem Repo und anderen verwenden. 3.2 ermöglicht das Kompilieren direkt zum Objekt anstatt einen Schritt durch die Montage zu machen. –

+0

http://stackoverflow.com/questions/5878292/iphone-why-can-the-compiler-not-find-some-includes-when-building-for-armi-archi/17537169#17537169 – MoDJ

Antwort

21

Um Quer kompilieren für Raspberry Pi Lauf Soft-float Linux-Distributionen Flaggen hinzufügen -ccc-host-triple arm-eabi -marm -mfpu=vfp -mcpu=arm1176jzf-s -mtune=arm1176jzf-s -mfloat-abi=softfp

Um Quer kompilieren für Raspberry Pi laufen hart float Linux-Distributionen verwenden die Fahnen -ccc-host-triple arm-eabi -marm -mfpu=vfp -mcpu=arm1176jzf-s -mtune=arm1176jzf-s -mfloat-abi=hard

Um Quer kompilieren für Pandaboard Verwendung Flaggen -ccc-host-triple arm-eabiv7 -mthumb -mfpu=neon-fp16 -mcpu=cortex-a9 -mtune=cortex-a9 -mfloat-abi=hard (unter der Annahme, dass Ihr Pandaboard Ubuntu läuft)

Hinweis: neuere Version clang Verwendung -target Option statt -ccc-host-triple

+0

Große Antwort! Danke für die sehr spezifischen Flaggen. – CyberFonic

1

Siehe EmbToolkit Projekt. Es gibt die Möglichkeit, clang/llvm oder gcc-basierte Cross-Compiler-Toolchain zu generieren.