「静的接続」とはどういう意味ですか?

「静的接続」とはどういう意味ですか?

私の理解によると、soファイルは動的ライブラリです。これを使用してldd依存関係を印刷できます。

ldd -r /usr/lib/aarch64-linux-gnu/libstdc++.so.6たとえば、次のような出力を得るために実行できます。

    linux-vdso.so.1 =>  (0x0000ffff793f7000)
    libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000ffff79173000)
    libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffff7902c000)
    /lib/ld-linux-aarch64.so.1 (0x0000aaaae0a5d000)
    libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000ffff7900b000)

ところで今日実行してみるとldd -r /lib/ld-linux-aarch64.so.1次のような結果が出ました。

statically linked

この出力が表示されるのはなぜですか?どういう意味ですか?

ベストアンサー1

このファイルは動的ライブラリを使用しませんが、実行可能ファイルにライブラリの必須部分が含まれています。

したがって、lddファイルについては何もわかりません。

これは実行可能ファイルに動的ライブラリが必要ないという意味ですが、ライブラリのバグ修正による利点は得られません。

run time linker特別な場合は、実行時に動的ライブラリをプライマリバイナリにリンクするために使用されるいわゆるメソッドを確認し、動的ライブラリmmap()呼び出しの正しいオフセットを生成して確認します。ランタイムリンカーは操作を実行するため、他の動的オブジェクトに依存することはできません。

おすすめ記事