
デバッグを試みている間、などのldd <executable>
ライブラリがたくさん表示されることがわかりました。一方、aは同じライブラリセットを表示しません。libldap_r
libkrb5
libroken
rabin2 -l <executable>
リンクまたは関数呼び出しのldap文字列のソースディレクトリを調べましたが、表示されません。これはとにかく、これらのライブラリをリンクしてはいけません。これらのライブラリが使用されていることを確認するにはどうすればよいですか?
答え1
rabin2 -l
バイナリの直接的な依存関係を示します。つまりそれらはバイナリ自体にリストされています。ldd
バイナリに対して完全に解決された依存関係ツリーを表示します(可能な場合)。これには転移的依存関係が含まれます。したがって、バイナリはそれ自体が必要で、必要な場合とのみliba
リストされ、libb
4つのライブラリがすべて表示されます(利用可能な場合)。liba
libd
libe
rabin2 -l
liba
libb
ldd
新しい依存関係が識別されなくなるまで、最初のバイナリの依存関係をリストし、各個々の依存関係の依存関係をリストすることで、ldd
結果を手動で一致させることができます。rabin2 -l
ライブラリが実際に使用されていることを確認するには、ltrace
関心のあるすべてのシナリオでバイナリを使用できます。これは呼び出されるライブラリ関数を識別します。一部のライブラリの使用は構成によって異なります。たとえば、Kerberos ライブラリは、Kerberos が設定されている場合にのみ使用できます。
また、見ることができますlddとrpm -q - 必要。