2013-02-04 5 views
22

ARMプロセッサのクロスコンパイル用にClangを設定することはできますか?ホストはおそらくx86(AMD64 - おそらくUbuntu 12.04)上にあり、ターゲットはARM(Randberry PiとPandaboardはそれぞれ別々のコンパイルを行います)ですが、PowerPCアーキテクチャーでクロスコンパイルしたいと思うこともあります?プログラムソースは、ラズベリーパイランニングソフトフロートのLinuxディストリビューション用のクロスコンパイルするにはC.ARMのためのClang Crossコンパイル?

+0

おそらく、[llvm/ClangでARM上で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

であるラズベリーPiはハードフロートのLinuxディストリビューションを実行するためのクロスコンパイルする-ccc-host-triple arm-eabi -marm -mfpu=vfp -mcpu=arm1176jzf-s -mtune=arm1176jzf-s -mfloat-abi=softfp

フラグを追加フラグ-ccc-host-triple arm-eabi -marm -mfpu=vfp -mcpu=arm1176jzf-s -mtune=arm1176jzf-s -mfloat-abi=hard

を使用(あなたのPandaboard Ubuntuを実行することを仮定して)Pandaboardの使用フラグのためにクロスコンパイル -ccc-host-triple arm-eabiv7 -mthumb -mfpu=neon-fp16 -mcpu=cortex-a9 -mtune=cortex-a9 -mfloat-abi=hard

注意:最新のclangバージョンの使用-targetオプションの代わりに、-ccc-host-triple

+0

偉大な答え!非常に特定のフラグをありがとうございます。 – CyberFonic

1

プロジェクトを参照してください。これは、clang/llvm またはgccベースのクロスコンパイラツールチェーンを生成する能力を与えます。

関連する問題