美文网首页
ldd查看程序依赖库

ldd查看程序依赖库

作者: 杀破魂 | 来源:发表于2018-12-13 09:48 被阅读11次

作用

用来查看程序运行所需的共享库,常用来解决程序因缺少某个库文件而不能运行的一些问题

原理

ldd不是个可执行程式,而只是个shell脚本; ldd显示可执行模块的dependency的工作原理,其实质是通过ld-linux.so(elf动态库的装载器)来实现的。ld-linux.so模块会先于executable模块程式工作,并获得控制权,因此当上述的那些环境变量被设置时,ld-linux.so选择了显示可执行模块的dependency

示例

查看test程序运行所依赖的库:

/opt/app/todeav1/test$ldd test
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00000039a7e00000)
libm.so.6 => /lib64/libm.so.6 (0x0000003996400000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00000039a5600000)
libc.so.6 => /lib64/libc.so.6 (0x0000003995800000)
/lib64/ld-linux-x86-64.so.2 (0x0000003995400000
  • 第一列:程序需要依赖什么库
  • 第二列: 系统提供的与程序需要的库所对应的库
  • 第三列:库加载的开始地址
    通过上面的信息,我们可以得到以下几个信息:

通过对比第一列和第二列,我们可以分析程序需要依赖的库和系统实际提供的,是否相匹配

  1. 通过观察第三列,我们可以知道在当前的库中的符号在对应的进程的地址空间中的开始位置
  2. 如果依赖的某个库找不到,通过这个命令可以迅速定位问题所在;

相关文章

  • ldd查看程序依赖库

    作用 用来查看程序运行所需的共享库,常用来解决程序因缺少某个库文件而不能运行的一些问题 原理 ldd不是个可执行程...

  • ldd查看动态依赖库

    ldd命令用于输出程序或者库文件所依赖的共享库列表。 语法 ldd (选项) (参数) 选项 --help:显...

  • ldd命令

    ldd命令用于打印程序或者库文件所依赖的共享库列表。 来自:http://man.linuxde.net/ldd ...

  • ldd与otool

    ldd ldd命令用于打印程序或者库文件所依赖的共享库列表ldd不是一个可执行程序,而只是一个shell脚本 go...

  • 使用ldd查看程序依赖库并拷贝到指定目录

    偶遇程序目录复制到其他系统后缺少库文件,为解决此问题,故找到批量拷贝依赖库文件的方法。 1.通过ldd查看库依赖文...

  • Linux性能优化(性能工具助手)

    1、ldd /bin/ls #查看ls依赖于哪些库2、objdump -T /xx.so #查看库文件提...

  • qt5无法链接到mysql

    使用ldd 查看mysql的动态库(.so文件)是否满足依赖,有not found就说明没有满足该依赖

  • 如何恢复Centos6.9中丢失的库文件

    外部命令需要依赖于很多包才能执行 列出程序库文件的文件列表,用ldd:例如:ldd /usr/bin/cp 有很多...

  • Linux 查看so 依赖 (ldd 查看依赖)

  • Linux c gcc相关

    linux下动态库文件名命名规则 libxxx.so 动态库的制作 ldd 查看可执行程序连接信息

网友评论

      本文标题:ldd查看程序依赖库

      本文链接:https://www.haomeiwen.com/subject/idhvhqtx.html