このコマンドを使用するときは、次のldd
オプションがあります。-u
未使用の直接依存関係を印刷します。
オンラインヘルプで説明されているように。
たとえば、
ldd -u /bin/gcc
Unused direct dependencies:
/lib64/libm.so.6
/lib64/ld-linux-x86-64.so.2
「未使用の直接依存関係」とは何ですか?なぜ彼ら未使用?なぜ彼ら依存関係?
ベストアンサー1
バイナリは、これを動的セクションに「NEEDED」項目として依存関係としてリストするため、依存関係です。
readelf -d /usr/bin/gcc
図書館からのリクエストが表示されますgcc
。
gcc
関連ライブラリからエクスポートされたシンボルは実際には必要ないため、使用されません。 sに関する限り、ld-linux-x86-64.so.2
これは通訳であるため正常です。libm
このような場合は通常無条件で、いいえで行われます-lm
。未使用ライブラリを削除するための対応するリンカーオプション。
多くの場合、これは特にリンクなどのビルドツールの粒度が制限されているためです。例えばGNOMEライブラリは直接依存関係として必ずしも必要とは限りませんが、最終的にはライブラリ依存関係ツリーに含まれる長いライブラリのリストを生成する傾向があります。一般的に、廃止された依存関係を避けて依存関係の処理を簡素化することをお勧めします(ランタイムリンカーとパッケージ管理ツールを介して)。しかし、libm
とにかく関連性があるので無視しても安全ですlibc
。