MPLAB X IDE unable to resolve identifier 解決方法
- IT
- マイコン
MPLAB X IDE unable to resolve identifier
MPLAB X IDE で警告 unable to resolve identifier が発生することがあります。
mac OSのMPLAB X IDE v6.0.5で発生しました。エラー発生原因と解決方法がわかったので記録に残しておきます。
unable to resolve identifier エラー箇所
main.cのインクルード文 #include で警告が表示されることがあります。

警告内容
unable to resolve identifier
また、ANSELAの記載箇所でエラーが発生しています。PIC16F1827にはANSELAレジスタが存在するにも関わらずです。
ただし、このプログラム自体に問題はなくコンパイルは通ります。問題があるのは、MPLAB X IDEの問題です。
unable to resolve identifier エラー原因
エラーの原因は、MPLAB X IDEでマイコンのヘッダーファイルの読み込みに失敗していることが原因です。
警告が発生しているmcc.hファイルのxc.hの中を見ていきます。

以下のような警告が発生していました。さらにxc.hファイルの中を確認してみます。
There are unresolved includes inside

xc.hのファイルの中のpic.hインクルード文でさらに警告が表示されています。pic.hも確認してみます。
#include <pic.h>

pic.hの中でもhtc.hインクルード文で警告が発生していますが、本当のエラー原因は、pic_chip_select.hです。pic_chip_select.hを見てみます。
#include <pic_chip_select.h>

pic_chip_select.hの中にエラーが発生している箇所があります。このヘッダーファイルは、使用するマイコンの方に応じてインクルードするヘッダーファイルを変更しています。今回のプロジェクトでは、PIC16F1827を選択していたので、pic16f1827.hをインクルードしようとしていますが、エラーが発生しているようです。
Cannot find include file

エラー箇所にマウスカーソルを持っていくとさらに詳細なエラー内容が表示されました。どうやらMPLAB X IDEは、
以下のディレクトリからマイコンのヘッダーファイルを取得しようとしているみたいです。
/Applications/microchip/xc8/v2.41/pic/include/plib
ですが、そのフォルダは存在せずヘッダーファイルは別の場所にありました。
修正方法
マイコンのヘッダーファイルが存在するフォルダをMPLAB X IDEに教えてあげれば、エラーは解決します。

[Projects]のプロジェクトに対して右クリックして、[Properties]を押します。

[XC8 Glbal Options]の[XC8 Compiler]の[Include directories]の参照ボタンを押します。

[Browse…]を押します。

マイコンのヘッダーファイルがあるフォルダを選択して、[Open]ボタンを押します。今回は以下の場所にpic6f1827.hファイルがありました。
/Applications/microchip/xc8/v2.41/pic/include/proc

[OK] ボタンを押します。

[Include directories]に先ほど選択したフォルダが設定されていることを確認して、[Apply]ボタンを押します。

[OK]ボタンを押して設定を保存します。

すると、pic_chip_select.hで発生していたエラーが消えました。

また、main.cで発生していたANSELAの記述についてのエラーも同様に消えています。
以上。