はじめに
OpenWRT上でC++11を使って開発をするにはいろいろ設定する必要があったので、ここにメモとして残す。
想定しているバージョンはOpenWRT 15.05 Chaos Calmer。
gccの更新
http://qiita.com/0x0c@github/items/acb85104c18c2b3e465b
ここを参考にgccのバージョンを上げる。
標準ライブラリの変更
OpenWRTでは標準でuclibcを使っている。
uclibcは2012年に更新が止まっており、C++11の仕様に追いつけていない模様。(というか、全部のヘッダが入っていないっぽくstd::functionとかnot foundする。)
なのでeglibcに変更する。
make menuconfigした時のmake menuconfig --> Advanced configuration options (for developers) --> Toolchain Options --> C Library implementationを変更する。
終わりに
これでC++11が自由に使えるようになっているはずである。
おまけ
Chaos Calmer以前のOpenWRTでC++11を有効にするにも同様の手順を踏むことで可能になるはず。
実際にBBで行い、実行可能なバイナリが生成されたことを確認済み。