一:objdump

# 查看依赖的库
objdump -x xxx.so | grep NEEDED

# 查看可执行程序依赖的库
objdump -x ./testTime | grep NEEDED

二:readelf

# 查看依赖的库
readelf -a xxx.so | grep "Shared"

# 查看可执行程序依赖的库
readelf -a ./testTime | grep "Shared"

# 查看依赖的库
readelf -d xxx.so
readelf -d ./testTime

# 查看静态库有哪些.o文件
readelf -d xxx.a

三:ldd

# 查看依赖的库
ldd xxx.so

# 查看可执行程序依赖的库
ldd ./testTime

四:进程是否依赖指定

lsof  ***.so

五:动态库搜索路径顺序

  1. 编译目标代码时指定的动态库搜索路径

    LDFLAGS := -L./lib#指定编译路径
    -Wl,-rpath=${LD_PATH}
    
  2. 环境变量LD_LIBRARY_PATH指定的动态库搜索路径
    在这里插入图片描述

  3. 配置文件/etc/ld.so.conf中指定的动态库搜索路径
    在这里插入图片描述
    修改完成以后执行ldconfig

  4. 默认动态库搜索路径/lib

  5. 默认动态库搜索路径/usr/lib/

Logo

更多推荐