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的时候可以用来确保使用到的是正确路径下的版本