ldd 查看程序依赖库

ldd
作用:用来查看程式运行所需的共享库,常用来解决程式因缺少某个库文件而不能运行的一些问题。
示例:查看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不是个可执行程式,而只是个shell脚本; ldd显示可执行模块的dependency的工作原理,其实质是通过ld-linux.so(elf动态库的装载器)来实现的。ld-linux.so模块会先于executable模块程式工作,并获得控制权,因此当上述的那些环境变量被设置时,ld-linux.so选择了显示可执行模块的dependency。
--------------------------------------------------------------
ldconfig是一个动态链接库管理命令,为了让动态链接库为系统所共享,还需运行动态链接库的管理命令–ldconfig。 ldconfig 命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态 链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为 /etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表.
linux下的共享库机制采用了类似于高速缓存的机制,将库信息保存在/etc/ld.so.cache里边。
程序连接的时候首先从这个文件里边查找,然后再到ld.so.conf的路径里边去详细找。
这就是为什么修改了ld.so.conf要重新运行一下ldconfig的原因
补充一点,ldconfig在/sbin里面。
ldconfig几个需要注意的地方
1. 往/lib和/usr/lib里面加东西,是不用修改/etc/ld.so.conf的,但是完了之后要调一下ldconfig,不然这个library会找不到
2. 想往上面两个目录以外加东西的时候,一定要修改/etc/ld.so.conf,然后再调用ldconfig,不然也会找不到
比如安装了一个mysql到/usr/local/mysql,mysql有一大堆library在/usr/local/mysql /lib下面,这时 就需要在/etc/ld.so.conf下面加一行/usr/local/mysql/lib,保存过后ldconfig一下,新的library才能在 程序运行时被找到。
3. 如果想在这两个目录以外放lib,但是又不想在/etc/ld.so.conf中加东西(或者是没有权限加东西)。那也可以,就是export一个全局变 量LD_LIBRARY_PATH,然后运行程序的时候就会去这个目录中找library。一般来讲这只是一种临时的解决方案,在没有权限或临时需要的时 候使用。
4. ldconfig做的这些东西都与运行程序时有关,跟编译时一点关系都没有。编译的时候还是该加-L就得加,不要混淆了。
5. 总之,就是不管做了什么关于library的变动后,最好都ldconfig一下,不然会出现一些意想不到的结果。不会花太多的时间,但是会省很多的事。
以上这篇浅谈Linux中ldconfig和ldd的用法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# linux
# ldconfig
# ldd
# linux/OSX中“DD”命令制作ISO镜像操作系统安装U盘的方法
# Linux中dd命令使用实例教程
# linux 详解useradd 命令基本用法
# DDNS 的工作原理及其在 Linux 上的实现
# 一天一个shell命令 文本操作系列-linux dd使用教程
# linux命令详解之useradd命令使用方法
# linux系统下dd命令的使用方法
# 预防PHPDDOS的发包攻击别人的方法(iis+linux)
# Linux中在不破坏磁盘的情况下使用dd命令
# 我们可以
# 动态链接库
# 几个
# 是个
# 可执行
# 找不到
# 所需
# 给大家
# 没有权限
# 是一个
# 有一
# 是在
# 是一种
# 太多
# 也会
# 在这
# 这就是
# 能在
# 希望能
# 采用了
相关文章:
怎么将XML数据可视化 D3.js加载XML
制作网站的模板软件,网站怎么建设?
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?
如何选择高效稳定的ISP建站解决方案?
香港服务器网站推广:SEO优化与外贸独立站搭建策略
如何高效搭建专业期货交易平台网站?
建站之星客服服务时间及联系方式如何?
建站之星在线客服如何快速接入解答?
视频网站制作教程,怎么样制作优酷网的小视频?
建站之星安装步骤有哪些常见问题?
电脑免费海报制作网站推荐,招聘海报哪个网站多?
免费网站制作appp,免费制作app哪个平台好?
建站VPS能否同时实现高效与安全翻墙?
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
个人网站制作流程图片大全,个人网站如何注销?
移民网站制作流程,怎么看加拿大移民官网?
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
b2c电商网站制作流程,b2c水平综合的电商平台?
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
如何在Windows 2008云服务器安全搭建网站?
建站VPS推荐:2025年高性能服务器配置指南
黑客入侵网站服务器的常见手法有哪些?
模具网站制作流程,如何找模具客户?
IOS倒计时设置UIButton标题title的抖动问题
Android自定义控件实现温度旋转按钮效果
表情包在线制作网站免费,表情包怎么弄?
如何在香港服务器上快速搭建免备案网站?
黑客如何利用漏洞与弱口令入侵网站服务器?
南宁网站建设制作定制,南宁网站建设可以定制吗?
网站制作软件免费下载安装,有哪些免费下载的软件网站?
公众号网站制作网页,微信公众号怎么制作?
Bpmn 2.0的XML文件怎么画流程图
一键制作网站软件下载安装,一键自动采集网页文档制作步骤?
电商网站制作公司有哪些,1688网是什么意思?
ppt制作免费网站有哪些,ppt模板免费下载网站?
家具网站制作软件,家具厂怎么跑业务?
网站设计制作公司地址,网站建设比较好的公司都有哪些?
浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?
如何在建站之星网店版论坛获取技术支持?
建站之星24小时客服电话如何获取?
如何通过VPS建站无需域名直接访问?
南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?
如何快速查询网站的真实建站时间?
如何通过山东自助建站平台快速注册域名?
如何使用Golang安装API文档生成工具_快速生成接口文档
如何破解联通资金短缺导致的基站建设难题?
成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?
南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?
*请认真填写需求信息,我们会在24小时内与您取得联系。