プログラミングとか日常とかの覚書っぽいなにか
× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
Boostライブラリのバージョン1.49.0が出ていたので、お手軽なインストーラ(BoostPro)を使ってインストールしようと思ったんですが、なぜか現状、BoostProはバージョン1.47.0までしか公開されていない状態でした。
なので、今回Boostライブラリのソースをダウンロードしてビルドしてみたので、その手順をメモ代わりに書いておこうと思います。 あらかじめ、開発環境としてVisual C++がインストールされていることを前提としています。 私の環境では64bit版のWindows 7 にVisual Studio 2010がインストールされているので、ここではその場合の手順となっています。 以下のBoost C++ライブラリの公式サイトからダウンロードします。 Boost C++ Libraries http://www.boost.org/ 現在の最新バージョンは Version 1.49.0 です。 Version 1.49.0 http://www.boost.org/users/history/version_1_49_0.html zip形式でダウンロードしておけば間違いないですが、手持ちの圧縮解凍ツールが対応してるなら他の形式でも問題ないと思います。zip形式は他の形式と比べるとファイルサイズが大きいですし。 Windows上でのインストール方法は以下の通り公式でも紹介されています。英語ですが…。 Boost Getting Started on Windows http://www.boost.org/doc/libs/1_49_0/more/getting_started/windows.html ここでは、フォルダ D:\Boost\Boost_1_49_0 に解凍したものとして書いています。 Boostのいくつかのライブラリはヘッダファイルのみで使えるのですが、ビルドしてライブラリファイルを作成しておかなければならないものも多いため、あらかじめビルドをしておきましょう。 Boostライブラリのビルドには「Boost.Build」と呼ばれるBoost用のビルドツールを使用します。ツールといってもコマンドライン形式なので、GUIで直感的にとはいきませんが、それでもほんの少しの作業でビルドできるようになっています。(作業自体は少しであるとは言っても、ビルド時間はそれなりにかかるんですけど。) ビルドはVisual C++ (Visual Studio) のコマンドプロンプトから行います。 公式のインストール方法の解説では、“Open the command prompt and...”(コマンドプロンプトを開いて、~)と書いてありますが、実際には、普通のスタートメニューのアクセサリから開くコマンドプロンプトではなく、Visual C++でビルド可能なコマンドプロンプト環境である必要があります。 ビルド可能環境のコマンドプロンプトの起動の仕方はインストールされているVisual C++のバージョンにより異なりますが、Visual Studio 2010がインストールされている環境の場合、スタートメニューの「Visual Studio 2010」→「Visual Studio Tools」→「Visual Studio コマンド プロンプト (2010)」が該当します。 コマンドプロンプトを起動したら、cdコマンドでインストールフォルダへ移動し、まずbootstrapコマンドを実行しましょう。
bootstrapコマンドを実行すると、Boost.Buildの一部であるbjam (Boost.Jam) というコマンドラインツールが生成(ビルド)されます。Boostライブラリは、インストールを行うツール自体もインストール先の環境でビルドしてしまうという、かなり徹底した作りになっているようです。bootstrapコマンドの実行が完了すると、同じフォルダに「bjam.exe」「b2.exe」が生成されています。現在のバージョンではこの2つは同一の実行ファイルのようです。公式のインストール方法の解説では「b2」の方を使うように記載されているので、ここでもb2コマンドを使っていきます。 引き続き、このb2コマンドでBoostライブラリのビルドを行います。b2コマンドは、オプションを何も指定せず、単に
と入力すれば、デフォルトの設定でビルドを実施してくれます。現在のビルド環境で使用されているコンパイラの種類やバージョンなども可能な限り検出して、それに合った形でビルドされます。また、オプションの指定によって、以下の振る舞いを変えることができます。例えば以下のようなオプションがあります。・“--stagedir=フォルダ名”
ライブラリファイルの格納フォルダ。ここで指定したフォルダの下にさらに「lib」フォルダを作成して、ライブラリファイル(.lib や .dll)が格納される。指定しない場合は、b2を実行したフォルダの下に「stage」フォルダが作成され、そのフォルダが指定される。
・“link=static”, “link=shared”
Boostライブラリをスタティックリンクライブラリにするかダイナミックリンクライブラリ(DLL)にするか。ダイナミックリンクを指定する場合、使用しているBoostライブラリのDLLをプログラムの実行ファイルと同じフォルダに置く必要がある。ライブラリ指定しない場合は“link=static”になる。
・“runtime-link=static”, “runtime-link=shared”
C/C++ランタイムライブラリをスタティックリンクするか、ダイナミックリンク(MSVCRT.DLL, MSVCR100.DLLなどを使用)するか。ダイナミックリンクを指定する場合、使用するVisual C++のバージョンのランタイムライブラリが実行環境にインストールされている必要がある。指定しない場合は“runtime-link=shared”になる。
・“threading=single”, “threading=multi”
C/C++ランタイムライブラリにシングルスレッド用を使用するか、マルチスレッド用を使用するか(ただし最近のバージョンのVisual C++にはもはやシングルスレッド用C/C++ランタイムがないので選べませんが)。指定しない場合は“threading=multi”になる。
・“variant=debug”, “variant=release”
Debug版ライブラリを作成するかRelease版ライブラリを作成するか。指定しない場合は“variant=debug,release”(両方とも作成)になる。
実際にプログラムでBoostを使用する場合は、Visual C++のプロジェクトのプロパティで指定しているC/C++ランタイムの種類(マルチスレッド/マルチスレッドDLL、デバッグ版/リリース版)と一致するライブラリファイルをリンクしなければならないので、それに合わせてオプションを指定しておきます。 いったんb2コマンドを打ち込むと、ビルドにしばらく時間がかかります。 ちなみに私個人の環境では、以下のように2回に分けて実行しています。
ここで「b2 link=static,shared runtime-link=static,shared」とやると、「link=shared runtime-link=static の組み合わせを使うなんてとんでもない」的なニュアンスの警告で怒られました。そのため、上のように2回に分けています。これで、Boostの各種ライブラリファイル(.libとか.dllとか)が作成されているはずです。私の環境では「D:\boost\boost_1_49_0\stage\lib」の中に含まれています。 実際にBoostディレクトリを使ってプログラムを作成する場合、Visual C++のプロジェクトのオプションのC/C++オプションで指定する追加のインクルードディレクトリに以下のフォルダ名を指定します。
D:\boost\boost_1_49_0
同様に、リンカオプションの追加のライブラリディレクトリに以下のフォルダ名を指定する必要があります。
D:\boost\boost_1_49_0\stage\lib
以上でインストールは完了です。 参考リンク Boost C++ Libraries - Getting Started on Windows (公式のWindows環境へのインストール手順) http://www.boost.org/doc/libs/1_49_0/more/getting_started/windows.html boostjp - Boostライブラリのビルド方法 http://sites.google.com/site/boostjp/howtobuild PR |
プロフィール
HN:
はむぱい
職業:
ソフト作ったりしてる人
Twitter
カテゴリー
最新CM
[06/09 replica rolex oyster perpetual datejust]
[06/09 bracelets imitation cartier love]
[06/09 replica the oyster perpetual datejust]
[06/09 datejust rolex oyster perpetual]
[06/09 replica gold love bangle]
カレンダー
ブログ内検索
あ~いい漢字
|