【问题标题】:When GCC links a shared library is the soname stored?当 GCC 链接共享库时,是否存储了 soname?
【发布时间】:2013-06-06 03:34:25
【问题描述】:

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

【问题讨论】:

    标签: gcc shared-libraries


    【解决方案1】:

    是的,您可以使用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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-18
      • 2011-05-03
      • 1970-01-01
      • 1970-01-01
      • 2014-02-09
      • 2022-06-25
      相关资源
      最近更新 更多