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