链接器如何在没有SONAME的情况下找到共享库

时间:2010-11-01 18:40:08

标签: gcc shared-libraries elf

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

gcc -shared libfoo.o -o libfoo.so

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

链接器将文件名libfoo.so视为默认SONAME吗?

1 个答案:

答案 0 :(得分:9)

我认为你是对的。在这里,ld手册页说:

  

-soname =名称

     

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