2010/09/24

Linux上でBoostをビルドしてみよう

検索でわざわざBoostのビルドを探して飛んでくれたひとがいたのに
みたら、クロスコンパイルしか書いてないとか、ワンステップ飛ばしてるだろ

ってことで、Boostのビルドについて少し書こうと思います。

方法は、そんなに難しくなくて、ステップは3つほど

  1. Boostのダウンロードと展開
  2. bjamを作る(bootsrap.sh)
  3. bjamでboostをインストール

です。

というか、普通のboostでいいなら、Linuxの場合は

apt-get boost

です。

なんで、boostをビルドしなきゃいけないかというと
組込みなどのクロスコンパイルが必要な環境のモジュールを作成する場合

ターゲット上で動作する環境と、ホスト側のエミュレート環境を
できるだけ近づける必要があります。

具体的には、「ホストで使えたのに、ターゲットで動かねぇよ」

って。これが一番困るのです。
実際の話でいくと、そこまで問題は起こらないとは思いますが
減らせるリスクはできるだけ減らしましょうってことで。

ダウンロード

ダウンロードは、boost.org から持ってきます。

クロスコンパイル時は、1.43.0だったので、今回もこれを。
ダウンロードしたら、展開してください

tar zxvf boost_1_43_0.tar.gz

とかでいいと思います。

bjamを作る

展開できたフォルダに移動して、bootstrap.sh を実行します。

作業場所では、いつも話題に上がりますが、
2度目ですが、boostrap ではなく bootstrapですw

cd boost_1_43_0
./bootstrap.sh

といった感じ。

bjamでboostをインストール

bjamの実行最後に、bjamを実行して、モジュールを作ります

sudo ./bjam --without-python --without-mpi threading=multi install

解説ですが、

--without-python は、ターゲットにもpythonいれなかったので。
クロスコンパイルでの開発以外にも、色々作る予定であれば
Pythonも入れていいかと思います。
コンパイルでずっこける場合は、python-dev だっけか(うろおぼえ)が必要だと思います。

apt-get install python-dev

とか、こんな感じで。やり直しても上手くいかないなら --clean(クリーン) -a(リビルド) とか

--without-mpi は指定しなくても勝手に外れますが、メッセージが気になるので。

threading=multi でマルチスレッド対応に。

作成するモジュールなどの細かい設定は、クロスコンパイルの記事
見てもらうと良いと思います。

0 件のコメント:

コメントを投稿