1、说明
dd - print shared library dependencies
ldd [OPTION]... FILE...
2、option
-u Print unused direct dependencies. (Since glibc 2.3.4.)
-d Perform relocations and report any missing objects (ELF only).
-r Perform relocations for both data objects and functions, and report any missing objects or functions (ELF only).
3、其他
1)ldd能够显示可执行模块的dependency,其原理是通过设置一系列的环境变量,如LD_TRACE_LOADED_OBJECTS、LD_LIBRARY_VERSION等。【1】当LD_TRACE_LOADED_OBJECTS环境变量不为空时,任何可执行程序在运行时,它都会只显示模块的dependency,而程序并不真正执行。
export LD_TRACE_LOADED_OBJECTS = 1
2)ldd显示可执行模块的dependency的工作原理,其实质是通过ld-linux.so(elf动态库的装载器)来实现的。我们知道,ld- linux.so模块会先于executable模块程序工作,并获得控制权,因此当上述的那些环境变量被设置时,ld-linux.so选择了显示可执行模块的dependency。
3)ldd不是一个可执行程序,而只是一个shell脚本
4)/usr/bin/ldd查看该脚本。
参考
【1】 对ldd的实现原理进行介绍
http://hi.baidu.com/jackywdx/blog/item/5b64d2518ed6d31f377abe33.html