【发布时间】:2011-05-03 14:03:34
【问题描述】:
如果我创建一个没有这样的 SONAME 的共享库
gcc -shared libfoo.o -o libfoo.so
并链接到它, 链接器如何找到我的共享库?
文件名 libfoo.so 是否被链接器视为默认 SONAME?
【问题讨论】:
标签: gcc shared-libraries elf
如果我创建一个没有这样的 SONAME 的共享库
gcc -shared libfoo.o -o libfoo.so
并链接到它, 链接器如何找到我的共享库?
文件名 libfoo.so 是否被链接器视为默认 SONAME?
【问题讨论】:
标签: gcc shared-libraries elf
我认为你是对的。这是 ld 手册页所说的:
-soname=名称
创建 ELF 共享对象时,将内部 DT_SONAME 字段设置为指定名称。当可执行文件与 具有 DT_SONAME 字段的共享对象,然后当可执行文件运行时,动态链接器将尝试加载共享对象 由 DT_SONAME 字段指定,而不是使用提供给链接器的文件名。
【讨论】: