2013-02-04 163 views
22

是否有可能爲ARM處理器設置Clang進行交叉編譯?主機可能在x86上(AMD64--可能是Ubuntu 12.04),目標是ARM(Raspberry Pi和Pandaboard--將分別爲每個編譯單獨編譯),我可能在某些時候也希望爲PowerPC體系結構進行交叉編譯?節目源是C.Clang跨ARM編譯?

+0

也許這有助於[在x86上使用llvm/Clang交叉編譯ARM的可能性嗎?](http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-June/050820.html) –

+0

http: //github.com/dwelch67/raspberrypi我有在這個回購和其他使用clang的例子。 3.2允許直接編譯,而不是通過組裝來完成。 –

+0

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

回答

21

要交叉編譯爲樹莓裨運行軟浮子Linux發行版添加標記-ccc-host-triple arm-eabi -marm -mfpu=vfp -mcpu=arm1176jzf-s -mtune=arm1176jzf-s -mfloat-abi=softfp

要交叉編譯爲樹莓裨運行硬浮Linux發行版使用標誌-ccc-host-triple arm-eabi -marm -mfpu=vfp -mcpu=arm1176jzf-s -mtune=arm1176jzf-s -mfloat-abi=hard

交叉編譯PANDABOARD使用標誌-ccc-host-triple arm-eabiv7 -mthumb -mfpu=neon-fp16 -mcpu=cortex-a9 -mtune=cortex-a9 -mfloat-abi=hard(假設你的PANDABOARD運行的Ubuntu)

注:最近clang版本使用-target選項,而不是-ccc-host-triple

+0

很好的答案!謝謝你非常具體的標誌。 – CyberFonic

1

請參閱EmbToolkit項目。它能夠生成clang/llvm 或基於gcc的交叉編譯器工具鏈。