boostライブラリのビルド
Date: 2002/Dec/31
Keyword: Programming boost C++ Libraries Build thread regex
boostライブラリのビルド
ここでも何度か取り上げたC++を強化するクラスライブラリboost、 そのほとんどはテンプレートになっていてヘッダをインクルードするだけで使えるのですが、 threadやRegExなどを含む一部の機能はライブラリファイルをリンクする必要があります。 しかも、ちょうどおいしいところに限ってこうなんですよね。
ビルドは、boostのルートディレクトリでbjamというツール(makeに取って代わる、と解説してる)を使い、
bjam "-sTOOLS=msvc"(Visual C++ 6.0までの場合。Visual C++ .NET(7.0)はvc7という値を使うらしい)
あるいは、
bjam "-sTOOLS=borland"(Borland Compilerの場合。C++Builderでもフリー版でも)
などとやるだけなのですが、 Visual C++のほうがうまくいかなかったので、その対策についてのメモ。
bjamの入手
boost.orgやオフラインドキュメントのこの辺には、
bjamのプリビルド版、すなわちビルド済みのものがあるとのことなんですが(だよね?^^ゞ)、
ダウンロードしてもzipファイルが何故か開けず。PKヘッダはついてるけどZIPであることを認識できません。
(LhMelt 1.23.0.2 + Unzip32.dll 5.40)
で、結局ビルドしました。が、簡単。
C:\boost>cd tools\build\jam_src C:\boost\tools\build\jam_src>build.batで、作ってくれます。
使えるコンパイラも自動検索してくれるので、たいそうありがたいことになってます。
私の場合はVisual C++が使われているみたいでした。Borland Compilerでも調べてくれます(C++Builderはダメみたい)。 ただし、デフォルトのインストールディレクトリに入れた場合しか自動検索では引っかからないのは当然です。
そしてビルド
で、できあがったbjam(boost\tools\build\jam_src\bin.ntx86というディレクトリにできる)を、 boostのルートにコピーして、今度はライブラリファイルのビルドです。
C:\boost\tools\build\jam_src>copy bin.ntx86\bjam.exe ..\..\..\ C:\boost\tools\build\jam_src>cd ..\..\..\ C:\boost>bjam "-sTOOLS=msvc"
しかし、なぜかビルドできません。
今回もビルド設定を自動的に調べてくれるのですが、
デフォルトでVisual C++をインストールした場合の設定になっているのです。
Visual Studioをインストールした場合はディレクトリ構成が異なるのでこのままいかなかったという寸法です。
ここの注意に従って、 環境変数MSVCDirをC:\Program Files\Microsoft Visual Studio\VC98という値で作ってやって、 無事成功しました。
ちなみにBorland Compiler 5.5.1でもビルドしてみました。
Visual C++の時のような注意点は無かったんですが(私はパスも通しているからかな?)、
エラーの雰囲気からして、コンパイラの限界を超えたみたいですね。boost恐るべし。
今日の参考サイト
- Boost C++ Libraries
- boostのサポートサイトです。
- Let's boost
-
kMonos.NET内のboost解説ページです。
サンプル付きの解説がとってもわかりやすいです。