ld-linux.so以什么顺序搜索共享库?

ato*_*ice 9 linux linker shared-libraries

当ld-linux解析符号时,它以特定顺序搜索共享库,并在找到具有匹配符号的共享库时停止.

是什么决定了它在图书馆中搜索的顺序?如果未解析的符号在主程序或另一个共享库中,它会有所不同吗?

如何在不调用ldd之类的外部程序的情况下以编程方式确定搜索顺序?

Mar*_*ark 9

来自http://www.muppetlabs.com/~breadbox/software/ELF.txt(如sarnold所述):

解析符号引用时,动态链接器使用广度优先搜索来检查符号表.也就是说,它首先查看可执行程序本身的符号表,然后查看DT_NEEDED条目的符号表(按顺序),然​​后查看第二级DT_NEEDED条目,依此类推.