「未使用の直接依存関係」とはどういう意味ですか?

「未使用の直接依存関係」とはどういう意味ですか?

このコマンドを使用するときは、次の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

おすすめ記事