ldd はリンクされたライブラリのセットを表示しますが、 rabin2 -l を使用すると異なって表示されます。なぜこれが起こるのですか?

ldd はリンクされたライブラリのセットを表示しますが、 rabin2 -l を使用すると異なって表示されます。なぜこれが起こるのですか?

デバッグを試みている間、などのldd <executable>ライブラリがたくさん表示されることがわかりました。一方、aは同じライブラリセットを表示しません。libldap_rlibkrb5librokenrabin2 -l <executable>

リンクまたは関数呼び出しのldap文字列のソースディレクトリを調べましたが、表示されません。これはとにかく、これらのライブラリをリンクしてはいけません。これらのライブラリが使用されていることを確認するにはどうすればよいですか?

ベストアンサー1

rabin2 -lバイナリの直接的な依存関係を示します。つまりそれらはバイナリ自体にリストされています。lddバイナリに対して完全に解決された依存関係ツリーを表示します(可能な場合)。これには転移的依存関係が含まれます。したがって、バイナリはそれ自体が必要で、必要な場合とのみlibaリストされ、libb4つのライブラリがすべて表示されます(利用可能な場合)。libalibdliberabin2 -llibalibbldd

新しい依存関係が識別されなくなるまで、最初のバイナリの依存関係をリストし、各個々の依存関係の依存関係をリストすることで、ldd結果を手動で一致させることができます。rabin2 -l

ライブラリが実際に使用されていることを確認するには、ltrace関心のあるすべてのシナリオでバイナリを使用できます。これは呼び出されるライブラリ関数を識別します。一部のライブラリの使用は構成によって異なります。たとえば、Kerberos ライブラリは、Kerberos が設定されている場合にのみ使用できます。

また、見ることができますlddとrpm -q - 必要

おすすめ記事