RHEL 5.2とBoost 1.33がインストールされています。 boost_1_44_0.tar.bz2をダウンロードしました。そしてそれを構築しました。完了するとそれは示しました:
The Boost C++ Libraries were successfully built!
The following directory should be added to compiler include paths:
/home/dfe/Archive/boost_1_44_0
The following directory should be added to linker library paths:
/home/dfe/Archive/boost_1_44_0/stage/lib
まず、既存のブーストrpmを削除しました
rpm -e boost-1.33.1-10.el5
「エラー:「ブースト」は複数のパッケージを指定しています」というメッセージが表示されます
次に試しました:
rpm -e --allmatches boost
(「boost」と入力したのか「boost-1.33.1-10.el5」と入力したのか覚えていません)
依存関係のあるパッケージが表示されました。やった:
rpm -e [packagename1]
rpm -e [packagename2]
等々そしてそれから:
rpm -e --allmatches
これは私のシステムからブーストを完全に消去しました。
次に、tar -xvjf boost_1_44_0.tar.bz2を使用してboost_1_44_0.tar.bz2を抽出し、bootstrap with:
./bootstrap.sh
次にbjamを次のように実行しました:
./bjam install
それでおしまい! Boostがシステムにインストールされ、プログラムのコンパイル中にリンカーオプションを指定する必要がありませんでした。わーい!ここで、「rpm -q boost」コマンドは、パッケージがインストールされていないことを示しています。
考えられる理由の1つは、「make install」ではなく、単に「make」することです。したがって、「./ b2」ではなく「Sudo ./b2 install」を実行する必要があります
linuxシステムにソフトウェアをインストールする手順は常に存在します
問題は、2つのステップを実行し、最後の1つのステップが実行しなかったことです。
次のように、パスを.bashrcまたは.profile(またはボートをフロートするもの)に追加します。
export LIBS="-L/home/dfe/Archive/boost_1_44_0/stage/lib"
export CPPFLAGS="-I/home/dfe/Archive/boost_1_44_0"
アプリケーションのビルドに使用するメイクファイルにこれらのディレクトリを含める必要があります
CC -I/home/dfe/Archive/boost_1_44_0 -L/home/dfe/Archive/boost_1_44_0/stage/lib yourprogram.cpp
-Iオプション#includeファイルを検索するディレクトリのリストにdirを追加します。
-Lオプションは、リンカーがライブラリーを検索するディレクトリーのリストにdirを追加します
CCはSunコンパイラです...