首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
cron
debian
syslog
sudo
7层
4层
shell
vagrant
docker
k8s
服务器
touch
sftp
路由器
devops
centos7
ubuntu
awk
运维
log4j
ssh
colors
linux
unix
server
service
交换机
stdout
curl
容器
centos
负载均衡
kubectl
crontab
apache
port
tengine
grafana
压力测试
fabric
jenkins
grep
nginx
dns
zsh
tomcat
当前位置:
开发笔记
>
运维
> 正文
LinuxShell脚本Ldd命令原理使用方法
作者:lluuaalulua619 | 来源:互联网 | 2017-06-26 22:51
文章标题:LinuxShell脚本Ldd命令原理使用方法。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类
1、首先ldd不是一个可执行程序,而只是一个shell脚本
2、ldd能够显示可执行模块的dependency,其原理是通过设置一系列的环境变量,如下:LD_TRACE_LOADED_OBJECTS、LD_WARN、LD_BIND_NOW、LD_LIBRARY_VERSION、 LD_VERBOSE等。当LD_TRACE_LOADED_OBJECTS环境变量不为空时,任何可执行程序在运行时,它都会只显示模块的 dependency,而程序并不真正执行。要不你可以在shell终端测试一下,如下:
(1) export LD_TRACE_LOADED_OBJECTS=1
(2) 再执行任何的程序,如ls等,看看程序的运行结果
3、ldd显示可执行模块的dependency的工作原理,其实质是通过ld-linux.so(elf动态库的装载
器)来实现的。我们知道,ld-linux.so模块会先于executable模块程序工作,并获得控制权,因此当上述的那些环境变量被设置时,ld-linux.so选择了显示可执行模块的dependency.
4、实际上可以直接执行ld-linux.so模块,如:/lib/ld-linux.so.2 ——list program(这相当于ldd program)
ldd命令使用方法(摘自ldd ——help)
名称 ldd - 打印共享库的依赖关系
大纲 ldd [选项]…… 文件……
描述 ldd 输出在命令行上指定的每个程序或共享库需要的共享库。
选项
——version
打印ldd的版本号
-v ——verbose
打印所有信息,例如包括符号的版本信息
-d ——data-relocs
执行符号重部署,并报告缺少的目标对象(只对ELF格式适用)
-r ——function-relocs
对目标对象和函数执行重新部署,并报告缺少的目标对象和函数(只对ELF格式适用)
——help 用法信息
注意:
ldd的标准版本与glibc2一起提供。Libc5与老版本以前提供,在一些系统中还存在。在libc5版本中长选项不支持。另一方面,glibc2版本不支持-V选项,只提供等价的——version选项。
如果命令行中给定的库名字包含'/',这个程序的libc5版本将使用它作为库名字;否则它将在标准位置搜索库。运行一个当前目录下的共享库,加前缀"./".
错误:
ldd不能工作在a.out格式的共享库上。
ldd不能工作在一些非常老的a.out程序上,这些程序在支持ldd的编译器发行前已经创建。如果你在这种类型的程序上使用ldd,程序将尝试argc = 0的运行方式,其结果不可预知。
linux
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
linux
利用 Calcurse 在 Linux 终端高效管理日程与任务
对于喜爱使用 Linux 终端进行日常操作的系统管理员来说,Calcurse 提供了一种强大的方式来管理日程安排、待办事项及会议。本文将详细介绍如何在 Linux 上安装和使用 Calcurse,帮助用户更有效地组织工作。 ...
[详细]
蜡笔小新 2024-11-21 17:01:54
service
Struts2 + json+ jquery 实现三级联动action和jsp代码竟然有小红叉,提示缺双引号,检查了转义符号也没缺啊,求解
publicclassBindActionextendsActionSupport{privateStringproString;privateStringcitString; ...
[详细]
蜡笔小新 2024-11-21 16:25:41
server
设置Shadowsocks公共代理的关键步骤
本文详细介绍了如何正确设置Shadowsocks公共代理,包括调整超时设置、检查系统限制、防止滥用及遵守DMCA法规等关键步骤。 ...
[详细]
蜡笔小新 2024-11-20 20:41:33
service
MySQL启动时遇到错误:ERROR! MySQL未运行但存在锁定文件(/var/lock/subsys/mysql)的解决方案
本文详细介绍了在尝试启动MySQL服务时,如果遇到错误提示‘MySQL未运行,但锁定文件(/var/lock/subsys/mysql)存在’应如何处理,包括具体的操作步骤和可能的原因分析。 ...
[详细]
蜡笔小新 2024-11-20 20:19:58
linux
深入体验Python的高级交互式Shell - IPython
IPython 是一个增强型的 Python 交互式 Shell,提供了比标准 Python 控制台更为强大的功能,适用于开发和调试过程。它不仅支持直接执行 Linux 命令,还提供了丰富的特性来提高编程效率。 ...
[详细]
蜡笔小新 2024-11-20 19:06:56
linux
Linux环境下高效安装源码软件指南
在Linux系统中,许多应用程序以源代码的形式提供,这给安装带来了挑战。本文旨在介绍一种简化源码软件安装流程的方法,帮助用户更加轻松地完成安装。 ...
[详细]
蜡笔小新 2024-11-20 19:04:11
linux
Jupyter Notebook多语言环境搭建指南
本文详细介绍了如何在Linux环境下为Jupyter Notebook配置Python、Python3、R及Go四种编程语言的环境,包括必要的软件安装和配置步骤。 ...
[详细]
蜡笔小新 2024-11-20 18:37:27
server
MongoDB 高可用集群搭建指南:分片、读写分离与负载均衡
本文详细介绍了如何搭建一个高可用的MongoDB集群,包括环境准备、用户配置、目录创建、MongoDB安装、配置文件设置、集群组件部署等步骤。特别关注分片、读写分离及负载均衡的实现。 ...
[详细]
蜡笔小新 2024-11-20 18:28:16
service
Linux环境下MySQL的安装与部署指南
本文详细介绍了在Linux操作系统上安装和部署MySQL数据库的过程,包括必要的环境准备、安装步骤、配置优化及安全设置等内容。 ...
[详细]
蜡笔小新 2024-11-20 18:10:53
linux
掌握专业技能的学习路径
本文探讨了有效学习专业技能的方法,包括编程语言、操作系统、软件组件及前沿技术的探索,旨在为初学者提供一套系统的自学指南。 ...
[详细]
蜡笔小新 2024-11-20 17:01:13
unix
Linux命令操作指南:返回文件头与桌面的方法
本文介绍了在Linux环境下如何有效返回命令行状态、上一级目录及快速查找头文件和函数定义的方法。包括处理长时间运行命令、编辑器退出技巧、目录导航以及文件搜索策略。 ...
[详细]
蜡笔小新 2024-11-20 16:56:14
linux
Linux中利用cd命令别名快速切换工作目录
通过设置Linux中的cd命令别名,用户能够更加高效地在复杂的目录结构中进行工作目录的切换。本文介绍了几种实用的方法,帮助减少重复输入路径的工作量。 ...
[详细]
蜡笔小新 2024-11-20 16:44:00
linux
如何在Python中调用C++代码
本文介绍了一种方法,通过使用Python的ctypes库来调用C++代码。具体实例为实现一个简单的加法器,并详细说明了从编写C++代码到编译及最终在Python中调用的全过程。 ...
[详细]
蜡笔小新 2024-11-20 16:35:59
linux
探究64位Linux系统下32位程序的兼容性问题——以OpenVPN为例
本文通过分析一个具体的案例,探讨了64位Linux系统对32位应用程序的兼容性问题。案例涉及OpenVPN客户端在64位系统上的异常行为,通过逐步排查和代码测试,最终定位到了与TUN/TAP设备相关的系统调用兼容性问题。 ...
[详细]
蜡笔小新 2024-11-20 16:34:58
linux
Python在大数据和网络爬虫领域的应用前景
随着技术的发展,Python因其高效性和灵活性,在多个领域得到了广泛应用,特别是在大数据处理和网络爬虫开发方面。本文将探讨学习Python是否能够胜任大数据和网络爬虫工程师的工作,并分析其职业前景。 ...
[详细]
蜡笔小新 2024-11-20 16:02:31
lluuaalulua619
这个家伙很懒,什么也没留下!
Tags | 热门标签
cron
debian
syslog
sudo
7层
4层
shell
vagrant
docker
k8s
服务器
touch
sftp
路由器
devops
centos7
ubuntu
awk
运维
log4j
ssh
colors
linux
unix
server
service
交换机
stdout
curl
容器
RankList | 热门文章
1
利用Flask框架进行高效Web应用开发
2
SDIO接口基础解析与应用入门
3
开发笔记:优化角度材质设置对话框的设计与实现
4
Python: 如何判断哪些SciPy和NumPy函数支持多核并行计算?
5
关系型数据库管理系统(RDBMS)核心术语解析与应用
6
HDU1176:免费馅饼问题的动态规划解法分析
7
Elasticsearch 写入与查询的底层机制解析
8
如何在PHP中将数组类型转换为字符串类型数据?
9
解决 Vista 及其他 Windows 系统中“组策略”无法启动的问题
10
《唐元稹〈和李校书新题乐府十二首·蛮子朝〉译文与原文赏析》
11
在CentOS 6.3系统中无法找到g++编译器的解决方案
12
Java编程技巧:数组排序算法(冒泡排序与选择排序)、二分查找、Arrays类应用及进制转换、装箱与拆箱详解
13
Qt 应用程序全屏模式下的 Esc 键处理优化
14
如何在图像中精确标注并计算部分圆形的切割角度及其位置信息?
15
深入解析Java中的阻塞队列机制及其应用场景
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有