マカロニペンギンの健忘録

特にテーマを決めているわけじゃないが、私が気になったことを書いていく予定です。

ArduinoライブラリーのIRremoteでエラーが出てしまう方へ

2013年10月27日 | Weblog
赤外線リモコンとArduinoを連動したスケッチ(プログラム)を作成しているのですが、なぜかエラーが出る。
さらにIRremoteライブラリーに添付してあったExamples(例)にまでエラーが出る始末。
もうどうしようもない・・・

私の現在の開発環境は
Windows7
Arduino IDEは1.0.5(今日時点で最新)
IRremoteライブラリーはhttps://github.com/shirriff/Arduino-IRremoteから取得、今現在の最新です。

ふと、Linuxディストリビューションの一つであるMintLinuxがMemory Stickに入っていることを思い出し、

ArduinoIDE1.0.5をインストール
IRremoteライブラリーのインストール
examplesのコンパイル
コンパイル完了

って、ことはWindowsと1.0.5の相性が悪いのかと
Windowsに1.0.4をインストール
examplesをコンパイル
あっさりコンパイル完了


IRremoteを使う人はとりあえずWindows版1.0.5を使うのを控えたほうが良いと言うことでした。

残念ながら私には原因を追求するスキルはありません。
どなたかお願いいたします。


C:\Program Files (x86)\Arduino\libraries\IRremote\IRremote.cpp: In function 'int MATCH(int, int)':
C:\Program Files (x86)\Arduino\libraries\IRremote\IRremote.cpp:32: error: redefinition of 'int MATCH(int, int)'
C:\Program Files (x86)\Arduino\libraries\IRremote\/IRremoteInt.h:179: error: 'int MATCH(int, int)' previously defined here
C:\Program Files (x86)\Arduino\libraries\IRremote\IRremote.cpp: In function 'int MATCH_MARK(int, int)':
C:\Program Files (x86)\Arduino\libraries\IRremote\IRremote.cpp:36: error: redefinition of 'int MATCH_MARK(int, int)'
C:\Program Files (x86)\Arduino\libraries\IRremote\/IRremoteInt.h:180: error: 'int MATCH_MARK(int, int)' previously defined here
C:\Program Files (x86)\Arduino\libraries\IRremote\IRremote.cpp: In function 'int MATCH_SPACE(int, int)':
C:\Program Files (x86)\Arduino\libraries\IRremote\IRremote.cpp:40: error: redefinition of 'int MATCH_SPACE(int, int)'
C:\Program Files (x86)\Arduino\libraries\IRremote\/IRremoteInt.h:181: error: 'int MATCH_SPACE(int, int)' previously defined here
C:\Program Files (x86)\Arduino\libraries\IRremote\IRremote.cpp: At global scope:
C:\Program Files (x86)\Arduino\libraries\IRremote\IRremote.cpp:46: error: expected constructor, destructor, or type conversion before '&&' token
C:\Program Files (x86)\Arduino\libraries\IRremote\IRremote.cpp: In function 'int MATCH_MARK(int, int)':
C:\Program Files (x86)\Arduino\libraries\IRremote\IRremote.cpp:92: error: redefinition of 'int MATCH_MARK(int, int)'
C:\Program Files (x86)\Arduino\libraries\IRremote\/IRremoteInt.h:180: error: 'int MATCH_MARK(int, int)' previously defined here
C:\Program Files (x86)\Arduino\libraries\IRremote\IRremote.cpp: In function 'int MATCH_SPACE(int, int)':
C:\Program Files (x86)\Arduino\libraries\IRremote\IRremote.cpp:96: error: redefinition of 'int MATCH_SPACE(int, int)'
C:\Program Files (x86)\Arduino\libraries\IRremote\/IRremoteInt.h:181: error: 'int MATCH_SPACE(int, int)' previously defined here
C:\Program Files (x86)\Arduino\libraries\IRremote\IRremote.cpp: In constructor 'IRrecv::IRrecv(int)':
C:\Program Files (x86)\Arduino\libraries\IRremote\IRremote.cpp:303: error: class 'IRrecv' does not have any field named 'enabled'
C:\Program Files (x86)\Arduino\libraries\IRremote\IRremote.cpp: In member function 'void IRrecv::enableIRIn()':
C:\Program Files (x86)\Arduino\libraries\IRremote\IRremote.cpp:333: error: 'enabled' was not declared in this scope
C:\Program Files (x86)\Arduino\libraries\IRremote\IRremote.cpp: At global scope:
C:\Program Files (x86)\Arduino\libraries\IRremote\IRremote.cpp:993: error: no 'int IRrecv::getIRRemoteCode()' member function declared in class 'IRrecv'