マイクロコントローラ用のクロスコンパイルプロジェクト(TIのmsp430)では、TIのclang ++とmspgccを使用します。次のように 基本的にコンパイルプロセスは、次のとおりです。私がやりたいcmakeで2つのツールチェーンを使用
file.cpp
--(llvm clang++)--> file.ll
--(llvm llc)--> file.s
--(ti msp430-elf-gcc)--> file.o
--(ti msp430-elf-gcc)--> a.out (executable)
何、cmakeのと私のプロジェクトをコンパイルしています。私はcmakeのtoolchainオプション(例えばhttps://cmake.org/cmake/help/v3.6/manual/cmake-toolchains.7.html?highlight=toolchain)について読んだことがありますが、それは私の状況にはあまり適していません。
これを達成する可能性はありますか?コンパイルするための
正確な手順は以下のとおりです。開始するために
/usr/local/opt/llvm/bin/clang++ -I ~/ti/gcc/include/ -I ~/ti/gcc/msp430-elf/include/ -D__MSP430F5529__ -S -emit-llvm -std=c++11 --target=msp430 -Wall -c file.cpp -o file.ll
/usr/local/opt/llvm/bin/llc -march=msp430 file.ll -o file.s
~/ti/gcc/bin/msp430-elf-gcc -Wall -D_GNU_ASSEMBLER_ -I ~/ti/gcc/include/ -mmcu=msp430f5529 -mcpu=430 -x assembler -Wa,-gstabs -c file.s -o file.o
~/ti/gcc/bin/msp430-elf-gcc -mmcu=msp430f5529 -B ~/ti/gcc/include/ -mcpu=430 -Wl,-Map=a.out.map file.o -o a.out
これは、複数のツールチェーンではなく、より長いツールチェーン(より多くのステップですが、基本的にはパラレル/直交とは対照的に順次)について話しているようです。 –
@ChintalagiriShashankは言ったように、C++コンパイラとしては 'clang ++'、.llコンパイラでは 'llc'(これが何であれ)、ASMコンパイラとリンカとしての' msp430-elf-gcc' 。 – Tsyvarev
はい、私は、より長い新しいツールチェーンを形成するために、異なるツールチェーンからツールを取ります。私はC++コンパイラ、ASMコンパイラ、およびリンカを設定する方法を知っています。しかし、どのようにして.all(llvm中間アセンブラ)から.s(ターゲットアセンブラ)ファイルに余分なステップを追加するようにcmakeに指示しますか? –