openFrameworksに含まれるboostは1.0.0と古く、Asioといった便利なライブラリが使えない。
そこで、boostを最新版(執筆時1.59.0)にアップデートする方法をメモする。
環境は次の通り。
- OSX 10.11.1
- openFrameworks 0.9.0
boostをダウンロードする
http://www.boost.org ここから最新版をダウンロードする。
boostをビルドする
次のコマンドでboostをビルドする。
ポイントとしては、static libraryを出力するように指定するところ。
$ ./bootstrap.sh --prefix=path/to/installation/prefix
$ ./b2 install -j 5 link=static
出力されたヘッダファイルとstatic library(.aファイル)をopenFrameworksのlibsディレクトリ以下のboostが入っているフォルダへコピーする。
具体的には$(OF_PATH)/libs/boost/include
にヘッダを、$(OF_PATH)/libs/boost/lib/osx
にstatic libraryをコピーする。
Xcodeの設定を変更する
XcodeのBuild Settingsから、$LIB_BOOST_FS
と$LIB_BOOST_SYSTEM
を次のように変更する。
-
$(OF_PATH)/libs/boost/lib/osx/boost_filesystem.a
→$(OF_PATH)/libs/boost/lib/osx/libboost_filesystem.a
-
$(OF_PATH)/libs/boost/lib/osx/boost_system.a
→$(OF_PATH)/libs/boost/lib/osx/libboost_system.a
boost/regixなどは適宜other linker flag
にパスを追加する。
Deployment targetを変更する
XcodeのGeneralからDeployment target を10.11に変更する。
終わり
これでビルドできるようになっているはず。
ただ、もともと使われているboostの参照先を直接変更しているため、openFrameworksの挙動全てに影響が出る可能性がある。
プロジェクトをアップデートするとXcodeの設定しなおしになるので注意。
($OF_PATH)/libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig
を修正することで設定しなおさなくても住むようになる。