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

fan*_*ana 4 gcc shared-libraries elf

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

gcc -shared libfoo.o -o libfoo.so
Run Code Online (Sandbox Code Playgroud)

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

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

dim*_*mba 10

我觉得你是对的.在这里,ld手册页说:

-soname =名称

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