積極的にメモっていく姿勢

題名詐欺。更新頻度の低さが売り。

MPLAB X IDE で xc.h が見つからない問題

人感センサーを使った展示をしたい人達が身近にいるらしいので,自分でも作ってみることにしました.買ったのは以下のセンサーです.秋月電子さんがお盆休みということで,今回は amazon で買いました.

 
製作回路その他は後日公開しますが,この記事では題の通り「xc.h 見つからない問題」のみを取り扱います.
 
開発環境は以下の通りです.

  • Windows 10 Home (64bit)
  • MPLAB X IDE v5.00
  • XC8 (v2.00)

今回の問題は,MPLAB X IDE v4.15 から v5.00 に移行して,XC8 もそれに伴い v1.45 から v2.00 に移行したため,ぶつかった問題です.
 

事の発端 - xc.h に赤い波線

以下の図は IDE を v5.00 に引き上げてからの図なので,正確には違います.ただ,こんな感じで赤い波線が引かれ,コードの補完が効かなかったため,非常に不便で解決しようと試みたものです.

赤い波線が #include <xc.h> に引かれている
赤い波線が引かれてしまう

実際であれば Path が表示されて,そこを見に行くことができます.以下のように,v2.00 と v1.45 ではディレクトリ構成が異なっており,IDE v4.15 で xc8 (v2.00) を使おうとすると,xc8 (v1,45) 以前のディレクトリ構成を単にそのまま使おうとして,ダメになっているようでした.

xc8 (v1.45) のディレクトリ構成だと,バージョン直下に include がある
xc8 (v1.45) のディレクトリ構成だと,バージョン直下に include がある

xc8 (v2.00) のディレクトリ構成だと,バージョン直下に include はなく pic に潜る
xc8 (v2.00) のディレクトリ構成だと,バージョン直下に include はなく pic に潜る

それで xc.h が見つからないという話になります.IDE のバージョンを最新にすれば解決するだろうという甘い気持ちで,MPlAB X IDE v5.00 をインストールし,プロジェクトを Clean Build してみたものの解決には至らず.
 

バージョンが変わっていて,この項目は見つけられず.
 

毎回やらねばならないため,ちょっと面倒だな...... と思ってしまう.  

Build 失敗のエラーでググる

(902) no chip name specified; use "PICC --CHIPINFO" to see available chip names

このエラー内容でググってたら解決策にたどり着くのでは?と考え,もう少し Google と向き合っていると,以下の記事を見つけました.

https://www.microchip.com/forums/m1060549.aspx

aschen0866 氏の回答に似てる問題起きてるよと書いてあったので,リンクを見てみました.

https://www.microchip.com/forums/m1058617.aspx

davekw7x 氏の回答を見ると,ものぐさな自分でもできるくらい詳細な手順が書かれていました.最高.

I get this error when it is using xc8 rather than xc8-cc. (That's xc8.exe, xc8-cc.exe for Windows users) Go to Tools->Options->Embedded->Build Tools and look at the Compiler and Assembler settings for XC8 (v2.00). If they are for xc8, change them to xc8-cc. (You might try clicking the "Remove" button for XC8 (v2.00) and then clicking the "Scan for Build Tools" to see if it will come up with xc8-cc on its own. If not, make the changes manually.)

You may have to change the Standard setting in the Project->XC8 Global Options box to C90 and back to c99 to see the effect of the new setting when you re-compile. (Maybe even exit the IDE and restart.)

Bottom line: Once I got it to use xc8-cc, things went smoothly.

とりあえず,書いてある通りの手順を踏みます.
 
Tools -> Options -> Embedded -> Build Tools まで辿りつきます.

Tools -> Options -> Embedded -> Build Tools
Tools -> Options -> Embedded -> Build Tools

look at the Compiler and Assembler settings for XC8 (v2.00). If they are for xc8, change them to xc8-cc. (You might try clicking the "Remove" button for XC8 (v2.00) and then clicking the "Scan for Build Tools" to see if it will come up with xc8-cc on its own. If not, make the changes manually.)

ということなので,XC8 (v2.00) を Remove して,Scan for Build Tools を押します.

XC8 (v2.00) を消して,Scan for Build Tools を押す
XC8 (v2.00) を消して,Scan for Build Tools を押す

すると,C CompilerAssembler の Path の末尾にある .exe の手前が xc8 から xc8-cc に変わりました.

xc8 が xc8-cc になった
xc8 が xc8-cc になった

とりあえず,これで Apply -> OK の流れ.
 
この後,Clean Build をすぐに試しましたが,赤い波線は解決せず...... と思って,もう一度 Option を開いて確認してみたり,ちょこまかしている間に,急に消えました.なぜ...... ただ,Build も通るし, GPIObits. とか書いたらちゃんと補完効くようになったし,自分が抱えている課題は解決したので満足です.