【问题标题】:How does linker find shared library without SONAME链接器如何找到没有 SONAME 的共享库
【发布时间】:2011-05-03 14:03:34
【问题描述】:

如果我创建一个没有这样的 SONAME 的共享库

gcc -shared libfoo.o -o libfoo.so

并链接到它, 链接器如何找到我的共享库?

文件名 libfoo.so 是否被链接器视为默认 SONAME?

【问题讨论】:

    标签: gcc shared-libraries elf


    【解决方案1】:

    我认为你是对的。这是 ld 手册页所说的:

    -soname=名称

    创建 ELF 共享对象时,将内部 DT_SONAME 字段设置为指定名称。当可执行文件与 具有 DT_SONAME 字段的共享对象,然后当可执行文件运行时,动态链接器将尝试加载共享对象 由 DT_SONAME 字段指定,而不是使用提供给链接器的文件名。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-26
      • 1970-01-01
      • 1970-01-01
      • 2021-08-26
      • 2013-04-15
      • 1970-01-01
      • 2015-10-03
      相关资源
      最近更新 更多