Linuxでは、同じマシンに2つのバイナリAとBを構築しました。私は若干古いlibstdC++をインストールした別のマシンに持っていきます。私はlddは実行すると、私はこれを取得バイナリAに-v:libstdC++の依存関係はどのように決定されますか?
libstdc++.so.6 (CXXABI_1.3) => /usr/lib64/libstdc++.so.6
libstdc++.so.6 (GLIBCXX_3.4) => /usr/lib64/libstdc++.so.6
を私はバイナリBに-v lddの実行すると、私はこの取得:
libstdc++.so.6 (CXXABI_1.3) => /usr/lib64/libstdc++.so.6
libstdc++.so.6 (GLIBCXX_3.4.15) => not found
libstdc++.so.6 (GLIBCXX_3.4) => /usr/lib64/libstdc++.so.6
注意をGLIBCXX_3.4.15の依存関係が見つかりません。これはインストールされたlibstdC++がGLIBCXX_3.4.10までしかサポートしていないので意味があります。
問題は:lddはバイナリBがGLIBCXX_3.4.15に依存していると判断しますか?さらに重要なことは、この依存関係の原因となっているコードを特定するにはどうすればよいですか?
非常に涼しい!ありがとう – Skrymsli