11

ファイルで実行するlddと、見つかったすべてのライブラリを括弧内に 16 進数で返します。

例えば:

root@server> ldd wpa_supplicant
        linux-gate.so.1 =>  (0xb779b000)
        libnl.so.1 => /usr/lib/libnl.so.1 (0xb774d000)
        libssl.so.1.0.0 => not found
        libcrypto.so.1.0.0 => not found
        libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb7748000)
        libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb75ed000)
        libm.so.6 => /lib/i686/cmov/libm.so.6 (0xb75c7000)
        /lib/ld-linux.so.2 (0xb779c000)

16 進数が、実行可能ファイルがリンクされたライブラリの番号でない場合、バージョン情報エラーが発生する可能性があります。

2 つの質問があります。

  1. この価値はどこから生まれますか?
  2. 実行可能ファイルが探している 16 進値を調べるにはどうすればよいですか? (つまり、最初にリンクされたもの)
4

1 に答える 1

10

16進数は、それぞれのライブラリがロードされるメモリアドレスです。詳細については、 https://stackoverflow.com/a/5130690/637284を参照してください。

于 2012-11-01T21:16:36.903 に答える