Linux查看动态库依赖

静态查看一个可执行文件或一个so依赖的动态库

1
ldd <可执行文件名或so文件名>
1
ldd -r <可执行文件名或so文件名>

​ -r 选项除了输出依赖的动态库(缺失会输出 not found)还会输出缺失的符号(undefined symbol)

动态查看一个进程加载的动态库

1
cat /proc/<PID>/maps|awk '{print $6}'|grep '\.so'|sort|uniq
1
lsof -p <PID>|awk '{print $NF}'|grep '\.so'|sort|uniq
1
pmap -p <PID>|awk '{print $4}'|grep '\.so'|sort|uniq

​ 3个命令输出结果应该是一样的

当存在不同版本so的时候可以用来确保使用到的是正确路径下的版本