1

clang をクロスコンパイルして、avr のコンパイラとして使用したいと思います (詳細は arduino)。次のようにすればいいと思います:

  1. Android ndk からスタンドアロン ツールチェーンを作成する
  2. 正しい CC および CXX パラメータでコンパイルします。

他に?--target=avr またはどのようにコンパイルできますか? clang-c API を使用してソースを解析するための IDE オートコンプリート ツールのように使用されるので、それは理にかなっていますか?

更新: --host および --target パラメータを使用した構成:

export CROSS_COMPILE=arm-linux-androideabi
export CC=${CROSS_COMPILE}-gcc
export CXX=${CROSS_COMPILE}-g++
export NDK=/softdev/android-ndk-r8e
export ANDROID_NDK_ROOT=/softdev/android-ndk-r8e
export SYSROOT=$NDK/platforms/android-8/arch-arm
export PATH=/softdev/arm-toolchain/bin:$PATH:/softdev/android-ndk-r8e/platforms/android-8/arch-arm

./configure --host=arm-linux-androideabi --target=arm-linux-androideabi --prefix=/softdev/arduinodroid_clang/arm
 make

... make エラーにつながります (Makefile が存在します):

llvm asmirnov$ sudo make
llvm[0]: Constructing LLVMBuild project information.
configure: error: Already configured in /Users/asmirnov/Documents/dev/src/llvm
make[1]: *** No targets specified and no makefile found.  Stop.
make: *** [cross-compile-build-tools] Error 1
4

2 に答える 2

2

LLVM リポジトリ内の現在のターゲットセットには、AVR は含まれていません。これは、AVR 用にコンパイルする作業が行われていないことを意味するのではなく、公式のソース リポジトリにないことだけを意味します。

LLVM へのバックエンドの追加に関するドキュメントについては、こちらを参照してください

于 2013-12-19T00:37:35.773 に答える