これまでWindowsにboostをインストールする際には"BoostPro"を利用していました。
BoostPro Computing - Advanced C++ Support, Training, and Development - BoostPro
http://www.boostpro.com/
しかし、今回このページに行くと「開発終了」であるというアナウンスが出ていました。
BoostProはコンパイル済みのものをインストールできるので簡単でよかったのですが、
最新のBoostのバージョンは提供されていません。
よって、Boostをソースからインストールしたいと思います。
まず、Boostをダウンロードしてきます。現時点では1.55.0が最新版みたいです。zipで落としてくるのは重くて大変なので、解凍できるソフトをインストールしているなら7zあたりがいいと思います。
Boost Downloads
http://www.boost.org/users/download/
解凍をして任意の場所に置いておきます。
今回は次の場所に置きました。
C:\boost\boost_1_55_0
次にコマンドプロンプトを起動します。
しかし、これは通常のコマンドプロンプトではなく、VisualStudioでコンパイルしないといけないためVisualStudioに付属しているコマンドプロンプトを利用します。
今回はVisualStudio2010 ExpressでBoostを使いたいので
すべてのプログラム ->> MicroSoft Visual Studio 2010 Express ->> Visual Studio コマンドプロンプト(2010)
のコマンドプロンプトを開きます。
先ほど置いたファイルの場所に行き、
bootstrap.bat
をします。これはmakeでいうconfigureみたいなものみたいです。
これを実行すると次のような表示が出てきます。
C:\boost\boost_1_55_0>bootstrap.bat
Building Boost.Build engine
Bootstrapping is done. To build, run:
.\b2
To adjust configuration, edit 'project-config.jam'.
Further information:
- Command line help:
.\b2 --help
- Getting started guide:
http://boost.org/more/getting_started/windows.html
- Boost.Build documentation:
http://www.boost.org/boost-build2/doc/html/index.html
これを見ても分かるように、つぎはb2.exeを実行するといいようです。
加えて、b2.exeを実行するときに一緒にオプションを指定してあげます。
どのようなオプションがあるかは--helpオプションで確認することができます。
このオプションをつけるとしたのような出力が出てきました。
C:\boost\boost_1_55_0>b2.exe --help
Boost.Build 2011.12-svn
Project-specific help:
Project has jamfile at Jamroot
Usage:
b2 [options] [properties] [install|stage]
Builds and installs Boost.
Targets and Related Options:
install Install headers and compiled library files to the
======= configured locations (below).
--prefix=<PREFIX> Install architecture independent files here.
Default; C:\Boost on Win32
Default; /usr/local on Unix. Linux, etc.
--exec-prefix=<EPREFIX> Install architecture dependent files here.
Default; <PREFIX>
--libdir=<DIR> Install library files here.
Default; <EPREFIX>/lib
--includedir=<HDRDIR> Install header files here.
Default; <PREFIX>/include
stage Build and install only compiled library files to the
===== stage directory.
--stagedir=<STAGEDIR> Install library files here
Default; ./stage
Other Options:
--build-type=<type> Build the specified pre-defined set of variations of
the libraries. Note, that which variants get built
depends on what each library supports.
-- minimal -- (default) Builds a minimal set of
variants. On Windows, these are static
multithreaded libraries in debug and release
modes, using shared runtime. On Linux, these are
static and shared multithreaded libraries in
release mode.
-- complete -- Build all possible variations.
--build-dir=DIR Build in this location instead of building within
the distribution tree. Recommended!
--show-libraries Display the list of Boost libraries that require
build and installation steps, and then exit.
--layout=<layout> Determine whether to choose library names and header
locations such that multiple versions of Boost or
multiple compilers can be used on the same system.
-- versioned -- Names of boost binaries include
the Boost version number, name and version of
the compiler and encoded build properties. Boost
headers are installed in a subdirectory of
<HDRDIR> whose name contains the Boost version
number.
-- tagged -- Names of boost binaries include the
encoded build properties such as variant and
threading, but do not including compiler name
and version, or Boost version. This option is
useful if you build several variants of Boost,
using the same compiler.
-- system -- Binaries names do not include the
Boost version number or the name and version
number of the compiler. Boost headers are
installed directly into <HDRDIR>. This option is
intended for system integrators building
distribution packages.
The default value is 'versioned' on Windows, and
'system' on Unix.
--buildid=ID Add the specified ID to the name of built libraries.
The default is to not add anything.
--python-buildid=ID Add the specified ID to the name of built libraries
that depend on Python. The default is to not add
anything. This ID is added in addition to --buildid.
--help This message.
--with-<library> Build and install the specified <library>. If this
option is used, only libraries specified using this
option will be built.
--without-<library> Do not build, stage, or install the specified
<library>. By default, all libraries are built.
Properties:
toolset=toolset Indicate the toolset to build with.
variant=debug|release Select the build variant
link=static|shared Whether to build static or shared libraries
threading=single|multi Whether to build single or multithreaded binaries
runtime-link=static|shared
Whether to link to static or shared C and C++
runtime.
Configuration help:
Configuration file at C:\boost\boost_1_55_0\tools\build\v2\user-config.jam
This file is used to configure your Boost.Build installation. You can modify
this file in place, or you can place it in a permanent location so that it
does not get overwritten should you get a new version of Boost.Build. See:
http://www.boost.org/boost-build2/doc/html/bbv2/overview/configuration.html
for documentation about possible permanent locations.
General command line usage:
b2 [options] [properties] [targets]
Options, properties and targets can be specified in any order.
Important Options:
* --clean Remove targets instead of building
* -a Rebuild everything
* -n Don't execute the commands, only print them
* -d+2 Show commands as they are executed
* -d0 Supress all informational messages
* -q Stop at first error
* --reconfigure Rerun all configuration checks
* --debug-configuration Diagnose configuration
* --debug-building Report which targets are built with what properties
* --debug-generator Diagnose generator search/execution
Further Help:
The following options can be used to obtain additional documentation.
* --help-options Print more obscure command line options.
* --help-internal Boost.Build implementation details.
* --help-doc-options Implementation details doc formatting.
...found 1 target...
しかし、オプションをすべて指定しなくても、基本的には
b2.exe
とオプションなしで実行してもデフォルトで勝手に指定してくれます。
デフォルト以外の値にしたい時だけオプションをつけるといいです。
自分は次のようなオプションを付けました。
b2.exe toolset=msvc-10.0 -j8
自分の環境ではインストールするPCにVisualStudio2010以外にもVisualStudioがインストールされていて、このオプションをつけないとVisualStudio2010ではないものでコンパイルされてしまったので"toolset=msvc-10.0"で2010でのコンパイルを明示しました。
msvc-10.0の10.0のところは
VisualStudio2008 ->> msvc-9.0
VisualStudio2010 ->> msvc-10.0
VisualStudio2012 ->> msvc-11.0
VisualStudio2013 ->> msvc-12.0
のようにして好きなバージョンでコンパイルできます。
また、"-j"オプションはmakeでは定番ですが、コンパイルするときに並列処理で利用するコア数を指定しています。
数が多いほどコンパイルは早いですが、多くてもCPUのコア数程度にしましょう。
並列処理をしてもコンパイルにはある程度時間がかかります。
終わると次のような出力が出てきます。
The Boost C++ Libraries were successfully built!
The following directory should be added to compiler include paths:
C:/boost/boost_1_55_0
The following directory should be added to linker library paths:
C:\boost\boost_1_55_0\stage\lib
これを参考にVisual Studio 2010でインクルードディレクトリとライブラリディレクトリを追加しましょう。
これでおkです。
あとは何かしらネットで見つけたサンプルを実行してみましょう。
参考にしたサイト
Boost開発環境の構築 @Visual Studio 2010 SP1 - 堕(惰)プログラマ開発記録
http://d.hatena.ne.jp/godai_0519/20110520/1305895194
予定外 Windows環境へのBoostライブラリインストール
http://homepie.blog.shinobi.jp/vc--/windows%E7%92%B0%E5%A2%83%E3%81%B8%E3%81%AEboost%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB
Visutal Studio で Boost C++ Libraries をビルドする - Life like a clown
http://d.hatena.ne.jp/tt_clown/20110323/1300886446#20110323f1
Boostライブラリのビルド方法 - boostjp
https://sites.google.com/site/boostjp/howtobuild