Pages

Ads 468x60px

2016年11月28日月曜日

GLIBCXX_3.4.15 not found エラー

パピー用のパッケージを作成していると
/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by )
のようなエラーが発生する事があります
これはインストールされているライブラリが古く、ソフトウェアが要求するバージョンと合わないからです
そこでインストールされている libstdc++ に組み込まれているバージョンを確認

strings /usr/lib/libstdc++.so.6 | grep GLIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH

アプリケーションが要求するバージョン「GLIBCXX_3.4.15」が含まれていないことを確認できる
ubuntuのdebパッケージから新しめのlibstdc++.so.6を取得して差し替えて

strings /usr/lib/libstdc++.so.6 | grep GLIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH

エラー無くソフトが起動する
stringsコマンドは「binutils」に含まれる