
バイナリがありtest
、それが共有ライブラリを使用しているとします
a.so
b.so
c.so
バイナリの実行に問題があります。リンクされたライブラリの 1 つd.so
が、原因と思われる別のライブラリにリンクしているからです。ただし、実際には 3 つではなく 20 のライブラリがあり、すべてを調べるのに非常に時間がかかるため、どのライブラリがリンクしているのかわかりません。バイナリがldd
直接リンクしているライブラリのリストのみが表示されます。
それに加えて、間接レベルは 1 つではなく複数あるようです。言い換えると、次のようなものがあるようですa.so -> x.so -> blabla.so -> d.so
。
依存関係の図全体を視覚化する方法や、ライブラリにつながる正確な依存関係チェーンを見つける方法など、スマートな方法はありますかd.so
?
つまり、私が望んでいるのは次のようなものです。
a.so -> something.so
-> second.so
-> third.so
b.so -> x.so -> blabla.so -> d.so
-> stuff.so
c.so -> something.else -> yetanotherlib.so
d.so
あるいは、バイナリにリンクされているかを調べたい場合の簡易版では、
a.so -> x.so -> blabla.so -> d.so
これが意味を成すといいのですが。
答え1
必要なのはldd -v
、依存関係チェーンを詳細に示すことです。