arduinoの開発でC++11を使う

arduino上でC++11を使用する方法です.

arduinoで使用するコード

arduinoはg++, gccを使用してコードをコンパイルします.そのため,適切なバージョンのGCCなどを用意すればC++11も動作します.
しかし,デフォルトでIDEに付随しているg++はバージョンが古く,コンパイルオプションを追加してもC++11を使用することができないため,自分でコンパイラなどを更新してあげる必要があります.

用意するもの

今回私が使用したツールです.

  • Arduino IDE 1.5.8(1.5以上じゃないと設定ファイルが異なる.コンパイルオプションを指定するのは1.5以上が楽)
  • GCC, g++, avr g++ 4.9.2(std=c++11が使用できるバージョンのg++)

ちなみに私はWindows環境なのでmingwの一連のGCCを用意しました.

方法

1.arduinoが使用するGCCのフォルダにGCCをコピーする

arduinoIDEをインストールしたフォルダ\hardware\tools下フォルダにコピーします.

2.platform.txtにC++11使用コンパイルオプションを追加する

\hardware\arduino\avr\hardware.txtにて

compiler.cpp.flags=...
の記述に
compiler.cpp.flags=... -std=c++11
の記述を追加します(空白区切りです)

最後にarduino IDEを起動中の場合は再起動してから,適当にC++11を使用したコードをコンパイルしてみましょう.無事コンパイルされれば(特にコンパイルオプションに関するエラーがでなければ)成功です.

結果

以上がarduinoC++11を使用する方法のメモ書きでした.