Mac OS X 10.9でboostを手動ビルドする方法
標準のclang4.3を用いる場合,boostのコンパイルでエラーが発見されている.
参考1: https://trac.macports.org/ticket/42282
そこでgcc4.8を用いてboostをビルドしちゃう.
参考2: http://seiya-kumada.blogspot.jp/2013/12/macboost-1550gcc-482.html
参考2中ではMacPortsを使っているが,僕はHomebrew派なのでこちらのやり方をば.
$brew tap homebrew/versions
$brew install gcc48
homebrewにtapコマンドなるものが増えていて驚いた.
公式以外で公開されているフォーミュラを使えるようになるみたい.
ちなみにinstall gcc48すごく時間かかります.手元のMBAで45minくらい.
参考3: http://tukaikta.blog135.fc2.com/blog-entry-204.html
さて,gcc48が無事コンパイルできたわけですが,gccと打ってももちろん4.8のgccは起動しません.
参考4にしたがってエイリアスを張っておきましょう.
これをしないと,そもそものboostを導入するという目的にたどり着けません.
参考4: http://d.hatena.ne.jp/houmei/20131008/1381183331
あとはいつもどおり,公式( http://www.boost.org/ )からboostのソースコード類をダウンロード(記事執筆時ではboost_1_55_0.tar.gzが最新)
$tar xzvf boost_1_55_0.tar.gz //伸張,展開
$cd boost_1_55_0
$./boostrap --prefix=PATH_TO_INSTALL //PATH_TO_INSTALLにはインストールしたいディレクションパス
$./b2 install -j4 --prefix=PATH_TO_INSTALL //jオプションは並列コンパイルに使用するコア数
今回は参考5のマルチスレッドプログラムをサンプルとして拝借
参考5: http://www.yukun.info/blog/2008/07/boost-thread-create-run.html
$g++ thread.cpp -I ./include ./lib/libboost_thread.a ./lib/libboost_system.a
Iオプションでincludeディレクトリや,リンクするファイルを指定
( centosでは$g++ thread.cpp -I ./include -lboost_thread-mt -lboost_system-mtとしていた.なぞ…)
訂正: centosではg++ thread.cpp -I ./include/boost -lboost_thread-mtで済みました.