ARMのコンパイルは、GCCを使うことが多い。
コンパイルだけならコマンドラインでいいのだが、デバッグするのはテキストエディタと連動してくれたツールが無いとつらい。
なので、普段はeclipseを使っている。
eclipseはよくやってくれるのだが、エディタ画面でこういうマークが出てくるとがっかりしてしまう。
そう、インクルードパスがわかってないので、読み込めなかったことを示しているのだ。
気にしなければよいのだけど、せっかく示してくれるのなら解決したい気もする。
以前も似たようなことをやったのだけど、もうずいぶん前なので調べ直すことにした。
基本的には、プロジェクトのプロパティでパスを設定すればよい。
こんな感じ(nrftestはプロジェクト名)。
nRF51 SDKのようにSDKを使う場合、includeパスがいっぱいあって、それにそのパスは相対だ。
だから、そこへのルートパスを変数にして、あとはそこからのパスを書けばいいようにしておきたい。
きっとそういう変数があるだろう、とプロジェクトのプロパティを見て出てきたのが、”Build Variables”と”Environment”だ。
どっちも似たようなものに感じるけど、何が違うんだ?
- Build Variablesは、Eclipseでのみアクセスできて、こんな感じで使う。
make ${valiablesの名前} - Environmentは環境変数として設定するので、外部ツールからでも使える
じゃあEnvironment Variablesまで書けよー!
悩んだじゃあないか。
今回はeclipseにだけわかればよいので、Build Variablesにしておこう。
あとは「C/C++ General > Paths and Symbols」にひたすら追加していく。
。。。のは面倒なので、1つ追加して、Export SettingsでパスだけXML出力する。
そのファイルを見ると、<includepath>${NRF51_SDK_PATH}/components</includepath>のような出力になっているので、テキストエディタで開いて、Makefileからパスを持ってきて、うまいこと加工すればよい。
そしてそのXMLファイルをImport Settingsで読込めば完了だ。
ああ、Importすると「追加」になるので、重ねたくないものがあれば先に削除しておきたまえ。
こうしておくと、また別のプロジェクトを作ったときも、このXMLファイルをImportすればよいので楽だ。
同じファイルにBuild Variablesの設定もあれば言うことなしなのだが、すべてを求めるのは止めておこう。
GCCのパスも追加したいなら、そうするとよかろう。
こんなことをすると、パスが出てくる。
$ echo | arm-none-eabi-cpp -Wp,-v > gcc_inc_paths.txt 2>&1
このコマンドはARM版だけど、検索したときにはcppが使われてたから、普通のGCCでもいけるだろう。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。