如果我创建一个没有像这样的SONAME的共享库
gcc -shared libfoo.o -o libfoo.so
并链接到它, 链接器如何找到我的共享库?
链接器将文件名libfoo.so
视为默认SONAME吗?
答案 0 :(得分:9)
我认为你是对的。在这里,ld手册页说:
-soname =名称
创建ELF共享对象时,将内部DT_SONAME字段设置为指定的名称。当可执行文件与a链接时 具有DT_SONAME字段的共享对象,然后在运行可执行文件时,动态链接器将尝试加载共享对象 由DT_SONAME字段指定,而不是使用为链接器提供的文件名。