MPLAB X IDE unable to resolve identifier 解決方法

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 <xc.h>で警告が表示されることがあります。

PIC16F1827に存在するレジスタANSELAの記載に関してエラーが発生
unable to resolve identifier

警告内容

unable to resolve identifier

また、ANSELAの記載箇所でエラーが発生しています。PIC16F1827にはANSELAレジスタが存在するにも関わらずです。

ただし、このプログラム自体に問題はなくコンパイルは通ります。問題があるのは、MPLAB X IDEの問題です。

unable to resolve identifier エラー原因

エラーの原因は、MPLAB X IDEでマイコンのヘッダーファイルの読み込みに失敗していることが原因です。

警告が発生しているmcc.hファイルのxc.hの中を見ていきます。

There are unresolved includes inside <xc.h>

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

There are unresolved includes inside <xc.h>

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 <pic16f1827.h>

エラー箇所にマウスカーソルを持っていくとさらに詳細なエラー内容が表示されました。どうやら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]ボタンを押して設定を保存します。

エラー解決 1

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

エラー解決 2

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

以上。

他の記事

ゆるキャリエンジニア日誌 マイコン

コメントする