読者です 読者をやめる 読者になる 読者になる

Arduinoでコンパイル時にWProgram.hでエラーが出た時

arduino 電子工作

久々にArduinoを使って開発をしていたら

・・・・・・error: WProgram.h: No such file or directory (以降エラーが続く)

という自体が発生し、昔はうごいたんだけどなあと思っていた。(数年前に開発していたものを読み込んで見ていた) とはいっても、これが直らないと動かないので、Webを検索してうまく行ったため備忘録としてメモ。

リリースノートによれば Arduino1.0からWProgram.hをArduino.hに改名されたとのこと。 もう、古い環境で開発することはないとは思うけど回避策は以下のようになるらしい。

Arduino APIの宣言を提供するWProgram.hの名称をArduino.hに変更。 Arduino 古いバージョンとArduino 1.0以上のバージョンの両方で動作するライブラリを作成する際は、 #ifdefを使って、ARDUINO定数が100以上かチェックする。

実際は以下のコードに修正して対応した。

古いバージョン(書き換え前)

#include "WProgram.h"
#include <pins_arduino.h>

Ver1.0以降のバージョン(書き換え後)

#if defined(ARDUINO) && ARDUINO >= 100
  #include "Arduino.h"
#else
  #include "WProgram.h"
  #include <pins_arduino.h>
#endif

こう置き換えれば大丈夫でした。もっといい方法があるのかも。