当GCC链接共享库时,是否存储了soname?

时间:2013-06-06 03:34:26

标签: gcc shared-libraries

如果你在共享库中编译和链接,它是否将库的soname存储在二进制文件的某处,以便它知道要链接到哪一个?换句话说,如果我链接到1.0.0版本的liba.so然后我将我的库更新到2.0.0并且ABI / API已经改变,现在我的sym链接到liba.so指向2.0.0版本二进制文件是否仍然知道要查看liba.so.1?换句话说,它是否在二进制文件

中存储链接库的特定soname

1 个答案:

答案 0 :(得分: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)