GLIBCXX_3.4.10' not found というエラーを解決する

とあるバイナリを落としてきて実行しようとしたところ,以下のようなエラーメッセージが表示された.

/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.10' not found

エラーメッセージをググってみたところ,以下のサイト様を発見した.

エラーの内容は”/usr/lib/libstdc++.so.6のバージョンが古いので最新のものにしろ”で,簡単に解決する為にはgccのバージョンを最新のものにすればいいらしい.なるほど.

でも,今使っているgccは4.2.4でaptで入れることができる最新のバージョンである.これ以上新しいバージョンを入れる為には,aptで扱われていない本当に最新のgccを落としてくる必要がある.aptの管理を無視してgccのバージョンアップをしてしまうと,取り返しのつかないことになると思ったので,却下することにした.

代わりに,最新の/usr/lib/libstdc++.so.6を取ってきて利用してみることにした.別のマシン上でDebian lennyが動作しており,ログインしてobjdumpを使って/usr/lib/libstdc++.so.6を見てみると,GLIBCXX_3.4.10に対応?していることが分かった.このファイルをローカルな環境に持ってきてあるバイナリと同じ場所に設置して,以下のコマンドを実行した.

$ export LD_LIBRARY_PATH=新しいlibstdc++.so.6を置いたパス

その後,動かなかったとあるバイナリを実行したところ,一応動かすことができるようになった.ただ,完全に動くかどうかは分からないので注意が必要だと思う.