アールケー開発

Visual C++でのBoostライブラリのビルド方法

更新日:2008.3.30

Boostライブラリはオープンソースで提供されるC++のライブラリで、便利な機能を提供してくれるものです。このドキュメントではBoostライブラリをビルドする方法を紹介します。なお、Boostライブラリはビルドしなくとも使える機能も多々あり、FileSystemなどのいくつかのライブラリを使う場合にビルドが必要となります。

 

バイナリ形式のライブラリは無いのか?

Boostライブラリは無理にソースからビルドしなくともバイナリ形式でも入手することが出来ます。しかし、現時点ではVisual Studio 2008 (Visual C++ 9.0)に対応したバージョンはSubversionもしくはCVSのリポジトリから日々更新されるコードか1.35以降のバージョンのソースを入手し、ビルドする他無く、将来、正式版がバイナリ形式で提供されたとしても、開発環境の事情によりそれが使えない可能性もあります。

なお、バイナリ形式は次のサイトから入手できます。

Boost Consulting - Free Downloads
http://www.boost-consulting.com/products/free

 

ダウンロード

Subversion、もしくは、CVSのリポジトリからチェックアウトしてください。もしくは1.35以降のバージョンのソースコードをダウンロードしてください。(2008年3月30日にリリースされました。)

詳しくは、プロジェクトのWebサイトをご覧ください。

Boost C++ Libraries
http://www.boost.org/

 

ビルド環境について

本ドキュメントで前提としているビルド環境は次の環境です。それ以外の環境では事情が異なる可能性があります。

  • OS : Windows XP SP2
  • Compiler : Visual C++ 9.0 (Visual Studio 2008 Professional)

また、本ドキュメント中でインストールやチェックアウトする先のディレクトリは次のような構成を想定しています。

Subversionのチェックアウト先<boost> = C:¥Developer¥boost¥trunk

Cygwinのインストール先<cygwin> = C:¥cygwin

 

zipコマンドラインプログラムのインストール

bjamのビルド時に、zip.exeが必要となりますのでインストールします。一番簡単な方法はcygwinを利用する方法です。cygwinはUnix系のツールをエミュレーションレイヤーを使ってWindows上で使えるようにして提供しています。これにはzipも含まれています。デフォルト状態ではインストールされませんので、cygwinのsetupプログラムでインストールするようにしています。

cygwinについては、次のWebサイトをご覧ください。

Cygwin Information and Instllation
http://www.cygwin.com/

 

bjamプログラムのビルド

次にbjamプログラムをビルドします。bjamはBoostライブラリをビルドするためのツールです。次の手順でビルドします。なお、下記で<boost>となっているのは、boostライブラリをチェックアウトした先のディレクトリです。(リポジトリではtrunkディレクトリ)

(1) 環境変数のPATHに<cygwin>/binを追加する。(システムコントロールパネルで設定します。)

(2) Visual Studio 2008 Command Promptを起動する。

(3) <boost>/tools/jamディレクトリへ移動する。

(cd c:¥Developer¥boost¥trunk¥tools¥jam)

(4) build_dist.batを実行する

(5) 成功すると、<boost>/tools/jam/stageディレクトリに、boost-jam-<バージョン>-ntx86.zipファイルが作成されるので、展開します。

(6) 展開すると、bjam.exeファイルが入っているので、<boost>ディレクトリにコピーします。

 

Boostライブラリのビルド

Visual Studio 2008 Command Promptで開いたコンソールでそのまま作業します。<boost>ディレクトリへ移動し、オプションを指定して、bjamプログラムを実行します。オプションの代表的な組み合わせは次の通りです。boostを使ったプログラムを書いて、libから始まるライブラリを要求された場合は、staticリンクしたライブラリを要求されているので、staticリンク形式のライブラリをビルドして使用します。共有リンク形式にしたい場合は、クライアントコードを修正して、共有ライブラリとリンクするようにし、boostライブラリも共有リンクでビルドしたものを使用するようにします。

ビルドタイプ

コマンド

staticリンクのリリースビルド

bjam --toolset=msvc-9.0 --stagedir=. link=static runtime-link=shared release stage

staticリンクのデバッグビルド

bjam --toolset=msvc-9.0 --stagedir=. link=static runtime-link=shared debug stage

共有リンクのリリースビルド

bjam --toolset=msvc-9.0 --stagedir=. link=shared runtime-link=shared release stage

共有リンクのデバッグビルド

bjam --toolset=msvc-9.0 --stagedir=. link=shared runtime-link=shared debug stage

これらの構成ではいずれも、Visual C++ 9.0 (Visual Studio 2008)を使い、標準ライブラリは共有リンクの形式を指定しています。

Visual C++ 9.0以外のバージョンを使うときは、msvc-9.0の数値を変更してください。例えば、Visual C++ 8.0 (Visual Studio 2005) では、msvc-8.0とします。

標準ライブラリをstaticリンクしたい場合は、runtime-link=sharedをruntime-link=staticに変更してください。

 

ビルド結果

ビルドが成功すると、<boost>/libにビルドしたライブラリが格納されます。なお、中間ビルドファイルなどを削除したい場合は、libフォルダをどこかにコピーしておいて、ビルドしたときのコマンドに--clean-allオプションを追加して実行します。

例えば、staticリンクのリリースビルドでは、

bjam --toolset=msvc-9.0 --stagedir=. --clean-all link=static runtime-link=shared release stage

を実行します。

 

参考書

PR

 iTunes Store(Japan)

ウイルスバスター トレンドマイクロ・オンラインショップ

Mac ソフトのことなら act2.com

ソフトアップデート情報掲載サイト様

ADLbutton

banner

Vector

林檎の

運営サイト

マニュアル進行中

and - feel

公開したソフトの情報の他、開発中の情報なども書いているブログです。

更新情報

2009.06.30 追加マクロに「Safariからテキスト取得」を追加しました。

2009.06.29 RKDetailDesign 1.4.0 を公開しました。

2009.06.27 RKDetailDesign次バージョンの開発途中版を公開しました。次バージョンで実装予定の機能をお試しいただけます。

[PR] マインドマップ作成機能つき階層管理型ドキュメント作成ツール RKDetailDesign 2週間無料です。