MPLABの仕様でクソ沼ったので書き留めておきます。
今回沼った案件
今回はMPLABでソースファイルを複数扱う場合のメモを書きたいと思います。
ちょっとした実験系のソースコードであればmain.cのファイル1つで管理した方が楽ですが、それなりに作り込もうとすると量が膨大になり醜くなります。
そのためヘッダファイルなどを利用して機能ごとにソースファイルを用意するのが一般的です。
もちろん、MPLABでも新規にソースファイルを追加して管理することができます。
できるのですが、、、
なぜだッ!!なぜソースを追加したのにビルドが通らないんだッ!!!
格闘すること二日。
まぁそんな出来事があったので今後忘れないように書き留めておきたいと思います。
PICマイコンのプロジェクトでソースファイルを追加する方法
MPLABでのプロジェクトで main.c 以外のソースファイルを追加したい場合、プロジェクトエクスプローラにある「Source Files」を右クリックして「C Source File」を選択することで追加できます。
例えば今回、割込み関数を保存した「interrupt.c」を作成・保存したとします。
追加が完了すると以下のようにプロジェクトエクスプローラに表示されます。
MPLAB以外でフォルダを新規作成した場合、そのフォルダ内の変更は適用されない
上記の例ではようにMPLABから新規にソースファイルを追加しました。
しかし、MPLAB以外でフォルダ作成してソースファイルを追加した場合については、MPLABには登録されません。
例えばWindowsのエクスプローラでフォルダを追加し、その中にソースファイルを新規で作成した場合、
MPLABにて表示はされていたとしても、コンパイルはできません。
MPLABプロジェクトの仕様がどうなっているのかいまいちつかめてないですが、フォルダ分けしたファイルが表示されることもありました。
この辺の紐づけについては不明です。
対処方法
MPLAB以外の場所で新規に作成・追加したフォルダやソースがある場合、下記の手順で追加を行います。
1.プロジェクトを右クリック→「プロパティ」を開く
Project Propertiesウィンドウで「Include directories」の右側の「・・・」をクリック
Include directories ウィンドウで「Browse」ボタンをクリックしてフォルダを登録
これで問題なく外部で追加したソースについても登録されます。
まとめ
以上の手順でコンパイルが通るはずです。
自分の場合、フォルダを登録していない状態でコンパイルするとほかのエラーが出てきました。(よくあることらしい)
今回のような設定関係はエラーコードに出てこないので厄介ですね、、、、
多少でも参考になれたら幸いです。
それでは。