码迷,mamicode.com
首页 > 系统相关 > 详细

linux 命令之ldd

时间:2015-05-07 08:55:03      阅读:265      评论:0      收藏:0      [点我收藏+]

标签:

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

ldd使用方式:
ldd [option] file
option:
–version : 打印ldd的版本号
-v –verbose: 打印所有信息
-d –data-relocs:执行符号重部署,并报告缺少的目标对象(只对ELF格式适用)
-r –function-relocs:对目标对象和函数执行重新部署,并报告缺少的目标对象和函数(只对ELF格式适用)
-u –unused:打印未使用的直接依赖关系
–help:用法信息

ldd命令原理

  • ldd不是可执行程序,而是一个shell脚本(可以使用vi查看内容)
  • ldd能够显示可执行模块的依赖,其原理是通过设置环境变量,如: LD_TRACE_LOADED_OBJECTS。当 LD_TRACE_LOADED_OBJECTS环境变量不为空时,所有可执行的程序在运行时,都会只显示模块的依赖,而程序不真正执行。比如:
$ echo  $LD_TRACE_LOADED_OBJECTS

$ export  LD_TRACE_LOADED_OBJECTS=1
$ ls
    linux-gate.so.1 =>  (0xb77d7000)
    libselinux.so.1 => /lib/i386-linux-gnu/libselinux.so.1 (0xb77a5000)
    librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xb779c000)
    libacl.so.1 => /lib/i386-linux-gnu/libacl.so.1 (0xb7792000)
    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb75ed000)
    libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb75e8000)
    /lib/ld-linux.so.2 (0xb77d8000)
    libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb75cd000)
    libattr.so.1 => /lib/i386-linux-gnu/libattr.so.1 (0xb75c7000)

linux 命令之ldd

标签:

原文地址:http://blog.csdn.net/u011641885/article/details/45542107

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!