1

如果您在共享库中编译和链接,它是否会将库的 soname 存储在二进制文件中的某个位置,以便知道要链接到哪个库?换句话说,如果我链接到 liba.so 的 1.0.0 版本,然后我将库更新为 2.0.0,并且 ABI/API 已更改,现在我到 liba.so 的符号链接指向 2.0.0 版本二进制文件还会知道查看 liba.so.1 吗?换句话说,它是否将链接库的特定 soname 存储在二进制文件中

4

1 回答 1

0

是的,您可以使用它ldd来查看二进制文件的依赖关系。

ldd /bin/bash自己试试

在我的机器上打印

linux-vdso.so.1 =>  (0x00007fff10dff000)
libncurses.so.5 => /lib/libncurses.so.5 (0x00007f2237acb000)
libdl.so.2 => /lib/libdl.so.2 (0x00007f22378c7000)
libc.so.6 => /lib/libc.so.6 (0x00007f2237564000)
/lib64/ld-linux-x86-64.so.2 (0x00007f2237d25000)
于 2013-06-06T03:38:15.717 回答