在解析共享库依赖时,会检查依赖选项中是否有斜线(/)。如果有,那么会将其看成为路径,在该路径下加载共享库。如果没有协议,按一下方式搜索:
1)如果可执行文件的DT_RPATH运行时库路径列表中包含目录,但不包含DT_RUNAPTH列表时,那么在该包含目录中搜索改共享库。
2)如果定义了LD_LIBRARY_PATH环境变量,那么会依次搜索该环境变量包含的目录。但如果可执行文件是一个set-user-ID或set-group-ID程序,不会搜索该环境变量的路径。
3)如果DT_RUNPATH运行库路径列表包含目录,会搜索该目录,搜索顺序按链接时指定目录顺序。
4)检查/etc/ld.so.cache文件是否包含了与库相关的选项。
5)搜索标准目录/lib和/usr/lib目录。