libg++は数学ライブラリの一部を使用しているので、libmにリンクされていま す。既存のlibg++は古いライブラリを使用するようにコンパイルされている でしょうから、libg++をglibcを使って再コンパイルするか、バイナリ版を 入手する必要があります。最新のlibg++ソースと、glibcにリンクされたバイ ナリ(x86用)は ftp://ftp.yggdrasil.com/private/hjl/にあります。
glibcをテストライブラリとしてインストールした場合、glibcと同じディレク
トリにlibg++のファイルもインストールする必要があります(前節の例では
/usr/i486-linuxglibc2
)。バイナリパッケージからインストール
する場合は(私自身はこのようにしてlibg++をコンパイルしたことがありま
せんが、もしそのようなものがあるとすれば、おすすめします)、
ファイルをテンポラリディレクトリに展開してから、usr/lib
の
ファイルを<インストール先ディレクトリ>/lib/
へ
usr/lib
ディレクトリのファイルを<インストール先
ディレクトリ>/lib/
ディレクトリへ(はじめにinclude/g++
のリンクを削除しておくことをお忘れなく!)そして、usr/bin/
のファイルを<インストール先ディレクトリ>/bin/
ディレク
トリへ移動します。
glibcをメインライブラリとしてインストールした場合で、g++プログラムを以前 のCライブラリとともに使用したいならば、まず、古いlibg++ファイルを古い libcディレクトリに移動します。たぶん一番簡単な方法は、前節で説明した ようにしてlibc5を使ってlibg++をコンパイルしてインストールし、次に glibc版を通常どおりインストールすることです。
C++プログラムをメインでないlibcとともに使用した場合、g++のincludeディレク
トリをincludeするように指定する必要があります。上の例で言えば、
テスト用glibcなら/usr/i486-linuxglibc2/include/g++
、メインのglibcなら
/usr/i486-linuxlibc5/include/g++
になります。このためには通常、
$CXXFLAGS
変数指定を付加します。
CXXFLAGS = -nostdinc -I/usr/i486-linuxglibc2/include -I/usr/lib/gcc-lib/i486-linuxglibc2/2.7.2.2/include -I/usr/i486-linuxlibc5/include/g++ -b i486-linuxglibc2