私のプログラムは/lib64/libstdc++.so.6.0.19に依存するlibstdc++.so.6に依存しています。
しかし、私の以前のCentOSにはlibstdc ++.so.6 => libstdc ++.so.6.0.13があります。
質問
- バージョンが0.19より低い場合は、libstdc ++.so.6を確認する必要がありますか?
- libstdc++をlibstdc++.so.6.0.19に更新するには?
答え1
libstc++.so.6.0.13
そしてlibstdc++.so.0.19
互換性があります。よりlibstdc++ マニュアル。 CentOSシステムでプログラムを実行するのに問題はないはずです。
通常、Linuxの共有ライブラリは次のバージョン管理規則に従う必要があります。libfoo.so.X.Y.Z
ここでX
はメジャー番号、マイナー番号Y
です。増加するZ
と、X
新しいバージョンは以前のバージョンと互換性がありません。増分は、Y
ABIに互換性のある変更が行われたことを意味します。変更は、Z
いくつかのバグが修正されたことを意味しますが、インターフェイスは変更されませんでした。実行可能なバイナリには、使用する共有ライブラリへの参照が含まれていますが、これらの参照にはキー番号のみが含まれています。使用される実際のライブラリは、プログラムを実行するコンピュータのライブラリシンボリックリンクによって決定されます。たとえば、次のようになります。
/usr/lib/libstdc++.so.6 -> libstdc++.so.6.0.25