2016/03/14

[eclipse]Build VariablesでIndex用のインクルードパス設定

ARMのコンパイルは、GCCを使うことが多い。
コンパイルだけならコマンドラインでいいのだが、デバッグするのはテキストエディタと連動してくれたツールが無いとつらい。
なので、普段はeclipseを使っている。

eclipseはよくやってくれるのだが、エディタ画面でこういうマークが出てくるとがっかりしてしまう。

image

そう、インクルードパスがわかってないので、読み込めなかったことを示しているのだ。
気にしなければよいのだけど、せっかく示してくれるのなら解決したい気もする。
以前も似たようなことをやったのだけど、もうずいぶん前なので調べ直すことにした。


基本的には、プロジェクトのプロパティでパスを設定すればよい。
こんな感じ(nrftestはプロジェクト名)。

image

nRF51 SDKのようにSDKを使う場合、includeパスがいっぱいあって、それにそのパスは相対だ。
だから、そこへのルートパスを変数にして、あとはそこからのパスを書けばいいようにしておきたい。

きっとそういう変数があるだろう、とプロジェクトのプロパティを見て出てきたのが、”Build Variables”と”Environment”だ。

image

どっちも似たようなものに感じるけど、何が違うんだ?


What are Eclipse's Build Variables and how do they differ from the Environment Variables? - Stack Overflow

  • Build Variablesは、Eclipseでのみアクセスできて、こんな感じで使う。
    make ${valiablesの名前}
  • Environmentは環境変数として設定するので、外部ツールからでも使える

じゃあEnvironment Variablesまで書けよー!
悩んだじゃあないか。

 

今回はeclipseにだけわかればよいので、Build Variablesにしておこう。

image

あとは「C/C++ General > Paths and Symbols」にひたすら追加していく。

image

。。。のは面倒なので、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 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。