1.ldd
(1)ldd的作用
ldd可以列出一个对象文件所依赖的所有的动态库。
ldd不是可执行文件,而是一个shell脚本。
(2)ldd的使用方法
ldd [option] filename
使用举例:
$ ldd /bin/ping
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fd5f810e000)
libc.so.6 => /lib64/tls/libc.so.6 (0x00007fd5f7ed9000)
/lib64/ld-linux-x86-64.so.2 (0x0000003f0ae00000)
2.ldconfig
(1)ldconfig工具介绍
在linux系统中,有一个配置文件/etc/ld.so.conf,这个配置文件中配置了很多共享库的路径。一些依赖共享库的可执行程序可能会到ld.so.conf文件所配置的路径中查找自己所依赖的共享库的具体位置。然后直接遍历ld.so.conf中的各个目录,可能会很慢。而ldconfig工具可以构建一个/etc/ld.so.cache文件,为ld.so.conf中配置的各个共享库生成必须的链接和cache。动态加载器利用来自ld.so.cache 的缓存文件来定位需要动态加载及链接的文件。
如果改变了ld.so.conf(或在 ld.so.conf.d 中增加新文件), 必须运行ldconfig 命令(以 root用户身份)来重构 ld.so.cache 文件。如果不执行的话,那么在需要加载共享库时,却无法找到。
(2)ldconfig命令的重要选项
-v或--verbose: 用此选项时,ldconfig将显示正在扫描的目录及搜索到的动态链接库,还有它所创建的连接的名字
-f filename: 此选项指定动态链接库的配置文件为filename,系统默认为/etc/ld.so.conf
-C cache: 此选项指定生成的缓存文件为cache,系统默认的是/etc/ld.so.cache,此文件存放已排好序的可共享的动态链接库的列表
-p或--print-cache: 此选项用来打印ldconfig工具构建的缓存文件中所保存的所有共享库的名字
(3)ldconfig使用举例
ldconfig #重新构建/etc/ld.so.cache文件
ldconfig -p #打印ldconfig工具构建的缓存文件中所保存的所有共享库的名字
学习资料参考于:
http://www.ibm.com/developerworks/cn/linux/l-lpic1-v3-102-3/