linux下查看对象文件依赖的动态库的工具ldd以及共享库缓存构建工具ldconfig介绍

来源:互联网 发布:哪里能买到数据 编辑:程序博客网 时间:2024/05/27 19:26

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/


0 0
原创粉丝点击