ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
[TOC] ## demo ``` [root@localhost ]# ldd /bin/php linux-vdso.so.1 => (0x00007ffee6b32000) libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f55858de000) ... libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f5580860000) ``` > 1. ldd 必须指定到准确路径 > 2. 没有找到依赖时,会出现 not found ## 动态库的查询顺序 1. ELF可执行文件中动态段中DT_RPATH所指定的路径,不常用但是比较使用的方法; 2. 编译目标代码时指定的动态库搜索路径(-WI,-rpath=./); 3. 环境变量LD_LIBRARY_PATH指定的动态库搜索路径(常用); 4. 配置文件/etc/ld.so.conf(或ld.so.cache)中指定的动态库搜索路径; 5. 默认的动态库搜索路径/lib; 6. 默认的动态库搜索路径/usr/lib。 在上述1-3中指定的动态库搜索路径都可以指定多个搜索目录,其先后顺序是按指定路径的先后顺序搜索的。如果动态库之间存在依赖关系,那么先加载那些被依赖的动态库