Boost(1) VC++ 2008 Expressを使ってBoostの環境設定とサンプルコンパイル
概要 :
今回は、Boostです。非常に有名なので、ここで、あえて説明するまでもありませんが、続けて、サンプルソースの紹介記事などを考えていますので、
まずは、環境設定の記事を記載しておきます。
詳しい話は、別のサイトにお任せして、ここでは、簡単な流れを説明します。
(もし、Boostをちょっと試しただけなら、以下のURLからバイナリをダウンロードすることができます。そちらで試されることをお勧めします。あえて環境を整備する手間が省けます。)
ここで使用したサンプルソースコード:
まずは、コンパイル
ダウンロードしたBoostのソースコード一式を適当なディレクトリへ解凍します。
解凍先が、Boostの基本ディレクトリになりますので、わかりやすいディレクトリが良いかもしれません。
今回は、"C:\Boost"へ解凍することにします。
以降の説明や環境設定の中で出てくる、
%Boostインストールディレクトリ%は、ここでインストールしたディレクトリになります。
解凍を終えると、以下のようなディレクトリが作成されます。
※ここの1.4.0は、BOOSTのバージョンの相当します。
解凍を終えたら、以下の手順でコンパイルを行います。
- VC++ 2008 Expressでビルドすることを宣言します
C:\Boost\Boost1.4.0\tools\build\v2\user-config.jam
を開き、以下を追記します。
using msvc : 9.0 ;
- Boostのルートディレクトリ(ここでは、"C:\Boost\Boost1.4.0")へ、Boost Jam のバイナリファイル(bjam.exe)をコピー(あるいは解凍)します
バイナリファイルは、上記のダウンロード先からダウンロードしたboost-jam-x.x.x-ntx86.zipに入っています。
(ここも、ソースコードからバイナリファイルを作成することができますが、ここでは、説明を割愛します。)
- VC++ 2008 Expressのスタートアップメニューの中の"Visula Studio 2008 コマンドプロンプト"を開きます
- コマンドプロンプトから、%Boostインストールディレクトリ%\Boost へカレントディレクトリを移動し、ビルドします
1
2
3
4
5
| C:\Program Files\Microsoft Visual Studio 9.0\VC> cd C:\Boost\Boost1.4.0
C:\Boost\Boost1.4.0> bjam -toolset=msvc-9.0 --stagedir=C:\Boost\Boost1.4.0\lib ^
link=static runtime-link=static,shared threading=multi ^
variant=debug,release stage
:
|
※ ^ は、連続した1行であることを意味しています。
これで、ビルドが実施されます。
上記のサンプルでは、単純なビルドの方法を記載しています。他にSTLPort,ICU,EXPatなどのライブラリとともにBoostを利用したい場合は、
ここで、パラメータで指定する必要があります。
ここで、指定したパラメータについて簡単に解説しておきます。
-toolset : コンパイラーの指定を行います。(msvc-9.0 は、VC++の2008を意味します。)
--stagedir : 最終的に作成されたライブラリを1つのディレクトリにまとめる場合のディレクトリ名を指定します。後の"stage"パラメータとともに用います。
link :Boostライブラリのリンクに仕方を指定します。ここでは、staticなので、静的ライブラリを作成します。
runtime :Boostライブラリの使用するランタイムライブラリ(MSVCRT90.dll)のリンクに仕方を指定します。ここでは、static,sharedなので、静的リンクとDLLリンクの2つを作成します。
threading :スレッドの対応を指定します。ここでは、multiなので、マルチスレッド対応となります。
variant :コンパイルする種別を指定します。ここでは、debug,releaseなので、デバッグ版、リリース版をそれぞれ作成します。
stage :コンパイルした結果を1つのディレクトリにまとめます。
特にエラーなどの出力がなければ、OKです。
開発環境を整える
Boostを使うためには、IncludeパスとLibraryパスへ、Boostのそれぞれのパスを追加する必要があります。
(ここでは、DLLを作成しませんでしたので、DLLへのパス設定はありません。)
今回は、VC++ 2008 ExpressのIDEを使いますので、その環境設定を行ってみましょう。
- VC++ 2008 Expressを立ち上げます
- メニューの[ ツール ] - [ オプション ] - [ プロジェクトおよびソリューション ] - [ VC++ディレクトリ ]を開きます。
ここで、
"インクルードファイル"に、"C:\Boost\Boost1.4.0"を追加します。
"ライブラリファイル"に、"C:\Boost\Boost1.4.0\lib\lib"を追加します。
このディレクトリは、先のbjamのパラメータ(stagedir)に指定したディレクトリ+"lib"となります。
設定を終えたら、OKボタンをクリックします。
VC++でサンプルをビルドしてみましょう。
VC++のプロジェクト作成で、空のコンソールアプリケーションを作成します。
そのプロジェクトへ以下のソースコードを貼り付けたcppファイルを作成します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| #include <boost/lambda/lambda.hpp>
#include <iostream>
#include <iterator>
#include <algorithm>
int main()
{
using namespace boost::lambda;
typedef std::istream_iterator<int> in;
std::for_each(
in(std::cin), in(), std::cout << (_1 * 3) << " " );
return 1;
}
|
さあ、ビルドしてみてください。
コンパイルおよびリンクが完了できれば、OKです。
上記のコードがコンパイルできない場合は、環境に誤りがあります。パスの環境を見直してみてください。
上記のプログラムは、実際に動作させると以下のようにコンソールがひらき、そこに入力した数値の3倍の値を表示します。
最後に"q"を入力すると終了します。
今回、ご紹介したのは、Boostの環境の初歩です。
Boostは、いろんなライブラリと相互に絡むことができる汎用性の高いライブラリですので、いろんなライブラリをBoostに対応させようと思うと、結構、苦労します。
ただ、Boostは、有名ですから、いろんなサイトで、その苦労するポイントが紹介されていますので、そちらも参考にすれば、環境の構築はできるでしょう。
一度、お試しいただくのも良いと思います。
もっと、Boostについて詳しく知りたい方は、以下の本なども良いと思います。
本から学ぶことは多いと思います。ネットだけでは判らない様々な事に気づかされます。
コメントをどうぞ