全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

浅谈Linux中ldconfig和ldd的用法

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命令  # 我们可以  # 动态链接库  # 几个  # 是个  # 可执行  # 找不到  # 所需  # 给大家  # 没有权限  # 是一个  # 有一  # 是在  # 是一种  # 太多  # 也会  # 在这  # 这就是  # 能在  # 希望能  # 采用了 


相关文章: 制作旅游网站html,怎样注册旅游网站?  网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  建站之星体验版:智能建站系统+响应式设计,多端适配快速建站  如何配置FTP站点权限与安全设置?  安徽网站建设与外贸建站服务专业定制方案  python的本地网站制作,如何创建本地站点?  南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?  宝塔建站无法访问?如何排查配置与端口问题?  建站主机服务器选型指南与性能优化方案解析  如何快速上传自定义模板至建站之星?  如何通过虚拟主机快速搭建个人网站?  如何用免费手机建站系统零基础打造专业网站?  相册网站制作软件,图片上的网址怎么复制?  建站之星价格显示格式升级,你的预算足够吗?  电商网站制作公司有哪些,1688网是什么意思?  Android使用GridView实现日历的简单功能  如何高效生成建站之星成品网站源码?  c# await 一个已经完成的Task会发生什么  Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解  如何零成本快速生成个人自助网站?  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  建站之星导航配置指南:自助建站与SEO优化全解析  建站之星安装模板失败:服务器环境不兼容?  微信推文制作网站有哪些,怎么做微信推文,急?  建站上市公司网站建设方案与SEO优化服务定制指南  行程制作网站有哪些,第三方机票电子行程单怎么开?  如何在橙子建站上传落地页?操作指南详解  网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?  如何自定义建站之星模板颜色并下载新样式?  用v-html解决Vue.js渲染中html标签不被解析的问题  表情包在线制作网站免费,表情包怎么弄?  学校建站服务器如何选型才能满足性能需求?  制作农业网站的软件,比较好的农业网站推荐一下?  如何快速生成高效建站系统源代码?  如何快速查询域名建站关键信息?  建站之星2.7模板快速切换与批量管理功能操作指南  建站主机选购指南与交易推荐:核心配置解析  如何快速打造个性化非模板自助建站?  如何快速生成凡客建站的专业级图册?  Python如何创建带属性的XML节点  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  如何高效利用亚马逊云主机搭建企业网站?  如何快速搭建虚拟主机网站?新手必看指南  如何通过主机屋免费建站教程十分钟搭建网站?  已有域名和空间如何快速搭建网站?  C++中引用和指针有什么区别?(代码说明)  武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?  魔方云NAT建站如何实现端口转发?  制作营销网站公司,淘特是干什么用的? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。