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
でインストールが行われると考えていいのかな。一応うまくいったみたい。