はじめに
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で行い、実行可能なバイナリが生成されたことを確認済み。