MPLABXでフォルダごとソースを追加でビルドエラー

サブフォルダにまとめた自作のソースをプロジェクトに追加してビルドしてもエラーになってしまう不具合?に遭遇。ちょっとだけ悩んだので備忘録として残しておく。

まず、VisualStudioなどの開発IDEにあるようにMPLAXでも既存ソースを追加するコマンドがある。"Add Existing Items from folders.."を選択して、追加したいソースの親フォルダを選択してみる。

mplabx_addexisting01

"Add Folder"でそのフォルダを選択してAddを押す。

mplabx_addexisting02

確かにフォルダごとソースやヘッダが追加された。

mplabx_addexisting03

main.cにこのフォルダ以下のヘッダをインクルードして、関数をコールしてみる。

mplabx_addexisting04

そのままビルドすると、下図のようなエラーが発生する。呼び出している関数がないようなエラーになる。このメッセージちょっと上のメッセージにMakeFileをもとにコンパイラのログがでているが、確かに追加したソースがコンパイルされている形跡がない。

mplabx_addexisting05

海外掲示板を見ると、プロジェクトのプロパティからGeneralタブでフォルダを選択する旨の記述がある。早速見てみるが、さきほどの追加手順ですでにリストにあるので問題なさそう。

mplabx_addexisting06

ここで、OKApplyを押した後に再度ビルドすると、ちゃんとビルドが成功する。

本来"Add Existing Items from folders.."を実行したときに、追加されたソースがビルド対象として追加されないといけないはずが、どうも対象になってない模様。たぶんMPLABXの不具合じゃないかと。

上記のようにプロジェクトプロパティを開いて、適用することによってMakeFile関連が正しく再構築されると思われる。