|
現: 2017-11-21 (火) 14:00:08 takatsuka  |
| | + | TITLE:C++ boostインストール手順 |
| | + | C++ でコードを書くなら boost はぜひ使いたいところです。 |
| | + | 一部は C++11 とか C++0x で std に組み込まれデフォルトで使えるようになってきましたが、std には入っていない便利なものがあります。 |
| | + | と言いつつ自分、std に入ってるものですら使いこなせていないのですが、開発者の方に感謝しつつ使わせて頂こうと思います。 |
| | | | |
| | + | -以下にインストールの手順を記します。 |
| | + | がしかしここの記載そのままが皆様の要求に合致するとは限らないので、オプション等、適宜変更してください。 |
| | + | |
| | + | * windows (VisualStudio) [#a2ad8867] |
| | + | + ダウンロードして適当なフォルダに解凍 |
| | + | + 解凍したフォルダの bootstrap.bat を実行 |
| | + | + 解凍したフォルダで下記を実行 |
| | + | > rem for 32bit |
| | + | > b2 toolset=msvc-8.0 define=BOOST_USE_WINAPI_VERSION=0x0501 variant=debug,release threading=multi link=static runtime-link=shared asmflags=\safeseh |
| | + | > b2 toolset=msvc-8.0 define=BOOST_USE_WINAPI_VERSION=0x0501 variant=debug,release threading=multi link=static runtime-link=static asmflags=\safeseh |
| | + | > rem for 64bit |
| | + | > b2 toolset=msvc-8.0 define=BOOST_USE_WINAPI_VERSION=0x0501 variant=debug,release threading=multi link=static runtime-link=shared asmflags=\safeseh address-model=64 --stagedir=stage/x64 |
| | + | > b2 toolset=msvc-8.0 define=BOOST_USE_WINAPI_VERSION=0x0501 variant=debug,release threading=multi link=static runtime-link=static asmflags=\safeseh address-model=64 --stagedir=stage/x64 |
| | + | -- toolset は適宜指定。もちろん VisualStudio はインストール済であるべし。 |
| | + | --- msvc-8.0 (VisualStuido2005) |
| | + | --- msvc-9.0 (VisualStuido2008) |
| | + | --- msvc-10.0(VisualStuido2010) |
| | + | --- msvc-11.0(VisualStuido2012) |
| | + | --- msvc-12.0(VisualStuido2013) |
| | + | -- boost1.60.0 以降はデフォルトではXP用バイナリは作れなくなったので「define=BOOST_USE_WINAPI_VERSION=0x0501」を指定して XP も対象にする。 |
| | + | -- "LNK2026 モジュールは SAFESEH イメージには安全ではありません" みたいなエラーが出る場合向けに asmflags=\safeseh も追加しといたほうがよさげ。 |
| | + | +VisualStudio でインクルードパスとライブラリパスを設定。 |
| | + | |
| | + | * linux [#a13f1dd8] |
| | + | ** ディストリビューションが用意したものをインストール [#nba0b238] |
| | + | # yum install boost* |
| | + | - 使うバージョンにこだわらないなら、これが一番簡単。 |
| | + | ** ビルドしてインストール [#i2e2b1f0] |
| | + | - 下記は boost1.60.0 の場合の例。 |
| | + | - インストール先フォルダは $HOME/boost_1_60_0 にしているがご随意に。 |
| | + | - もちろん gcc 等はインストール済であるべし。 |
| | + | + ダウンロードして展開 |
| | + | # cd $HOME |
| | + | # wget http://downloads.sourceforge.net/project/boost/boost/1.60.0/boost_1_60_0.tar.bz2 |
| | + | # mkdir boosttmp |
| | + | # tar -jxf boost_1_60_0.tar.bz2 -C boosttmp |
| | + | # cd boosttmp/boost_1_60_0 |
| | + | # ./bootstrap.sh |
| | + | # ./b2 install cxxflags="-std=c++11" link=static threading=multi variant=release,debug --prefix=$HOME/boost_1_60_0 --layout=tagged |
| | + | -- prefix を指定して /usr/ 以外を指定する。ディストリビューション提供の boost とのバッティングを避ける。 |
| | + | -- cxxflags="-std=c++11" を指定。(c++11 をサポートしてない古い gcc は適宜 "-std=c++0x" とかにすべし。) |
| | + | -- link=static これを指定して shared ライブラリは作らないようにする。 |
| | + | so ファイルが必要なら shared も指定すべし |
| | + | -- variant=release,debug としてデバッグ版も作る。デバッグする環境でないなら debug は不要。 |
| | + | -- layout=tagged これを指定すると ○○-mt.○ とかの形で出来る。 |
| | + | + パス設定(の一例) |
| | + | -- .bash_profile に設定 |
| | + | export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:$HOME/boost_1_60_0/include |
| | + | export LIBRARY_PATH=$LIBRARY_PATH:$HOME/boost_1_60_0/lib |