相关疑难解决方法(0)

ldd不适用于动态链接的二进制文件

我有一个使用一堆.so文件的二进制文件.

bash-3.00$ file foo
foo: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.21, dynamically linked (uses shared libs), not stripped
Run Code Online (Sandbox Code Playgroud)

但是如果我在这个文件上运行ldd,它就无法获取二进制文件所依赖的.so文件.

bash-3.00$ ldd foo
        not a dynamic executable
bash-3.00$
Run Code Online (Sandbox Code Playgroud)

readelf确实显示了二进制文件使用的共享库列表.

bash-3.00$ readelf -d  foo
Dynamic segment at offset 0x17c810 contains 70 entries:

  Tag        Type                         Name/Value
 0x00000001 (NEEDED)                     Shared library: [libdl.so.2]
Run Code Online (Sandbox Code Playgroud)

在这种情况下,为什么ldd无法获取库依赖项?

linux linker shared-libraries elf

14
推荐指数
2
解决办法
2万
查看次数

标签 统计

elf ×1

linker ×1

linux ×1

shared-libraries ×1