2010-11-01 52 views
4

,如果我不喜欢这个如何连接找到共享库没有SONAME

gcc -shared libfoo.o -o libfoo.so 

,并连接它, 如何链接找到我的共享库SONAME创建一个共享库?

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

回答

7

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

-soname =名称

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