メモの日々


2010年04月15日(木) [長年日記]

[c++] Ubuntu 9.10 で Boost 1.35 と 1.42 をコンパイル

以前Boostの1.34.1をコンパイルしたが、今日は1.35と1.42をコンパイルしたのでメモ。

1.35編

1.34.1の時と同じく、

% ./configure --prefix=/home/kenichi/boost1.35 --with-libraries=test,thread,program_options

とするとMakefileができて、

% make
% make install

でいいはず、が、1.34.1と同じくコンパイルエラーに。エラーは

error: missing binary operator before token "("

error: ‘sscanf’ is not a member of ‘std’

の2種類。前者は1.34.1のときにも出ていたエラー。このバグが修正されたのは1.36なのか。仕方なく地道に前回と同じ方法で修正した。後者はエラーになるファイル boost/test/impl/debug.ipp に「#include <cstdio>」を追加すればよい。これでコンパイルできるようになった。

今回は修正内容にいまいち自信が無いのでパッチは示しません。

1.42編

1.42も同じようにしてビルドできると思いきや、展開したアーカイブ内に configure がなかった。代わりに bootstrap.sh というスクリプトがあったので中を見ると、configureと同じようなオプションが使える感じ。

% ./bootstrap.sh --help

でヘルプが表示される。configureと同じだな。

% ./bootstrap.sh --prefix=/home/kenichi/boost1.42 --with-libraries=test,thread,program_options

とした。すると、

Bootstrapping is done. To build, run:

    ./bjam

To adjust configuration, edit 'project-config.jam'.
Further information:

   - Command line help:
     ./bjam --help

と表示され、Makefileではなくbjamというファイルが作られた。--helpオプションでヘルプが表示されるけど長いなあ。stageって何?

% ./bjam

でコンパイルがなされ、

% ./bjam install

でインストールが行われると考えていいのかな。一応うまくいったみたい。