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