ldd命令学习
1、 --verify
libselinux.so.1 => /lib/libselinux.so.1 (0xb7f79000)
4、默认路径/lib和/usr/lib,但如果添加了-z nodeflib,则跳过。 -u, --unused print unused direct dependencies
Copyright (C) 2008 Free Software Foundation, Inc.
-v, --verbose -> LD_VERBOSE=yes
-u, --unused -> LD_DEBUG="unused"
linux-gate.so.1 => (0xb7fac000)
Usage: ldd [OPTION]... FILE...
$ ls -l /lib/ld-linux.so.*
$ which ldd
$ ldd --help
$ ls /usr/
3、/etc/ld.so.cache文件中的路径,但如果可执行程序在连接时候添加了-z nodeflib选项,则跳过。
libacl.so.1 => /lib/libacl.so.1 (0xb8014000)
2、剖析共享程序库)
3、LD_BIND_NOW
ldd可 以获得的共享库文件,其实是通过读取ldconfig命令组建起来的文件(/etc/ld.so.cache)。
$ export LD_TRACE_LOADED_OBJECTS=1
它是glibc的一部分,由Roland McGrath和Ulrich Drepper维护:
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb8037000)
$ file /usr/bin/ldd
ldd (GNU libc) 2.9
6、 LD_DEBUG
$ /lib/ld-linux.so.2 --list /bin/ls
<>.
libselinux.so.1 => /lib/libselinux.so.1 (0xb801d000)
linux-gate.so.1 => (0xb8050000)
更为详细的内容:
一般 ld-linux.so会按照以下顺序搜索共享库:
librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb7f93000)
更多的环境变量:
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7eb1000)
libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7e98000)
For bug reporting instructions, please see:
-r, --function-relocs ->LD_WARN和LD_BIND_NOW=yes
/usr/bin/ldd
-d, --data-relocs process data relocations
如:LD_TRACE_LOADED_OBJECTS
5、LD_VERBOSE
3、ldd命令的原理与使用方法( /af67700a80a01e1594ca6b29.html)
撤 销该环境变量,ls即又可以恢复正常使用:
1、DT_RPATH或DT_RUNPATH段
$ unset LD_TRACE_LOADED_OBJECTS
-d, --data-relocs -> LD_WARN=yes
$ ldd --version
2、man ldconfig()
libattr.so.1 => /lib/libattr.so.1 (0xb7dea000)
ldd用来打印可执行档依赖的共享库文件。
/lib/ld-linux.so.2 (0xb8051000)
1、man ldd()
Written by Roland McGrath and Ulrich Drepper.
ldd本身不是一个程序,而仅是一个shell脚本:
-r, --function-relocs process data and function relocations
libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7df4000)
1、LD_TRACE_LOADED_OBJECTS
ldd默认开启的环境变量是:LD_TRACE_LOADED_OBJECTS=1
还有一 些额外的环境变量可以参看man ld.so。
--help print this help and exit只 要设置其值非空即可。
--version print version information and exit
/usr/bin/ldd: Bourne-Again shell script text executable This is free software; see the source for copying conditions. There is NO
libacl.so.1 => /lib/libacl.so.1 (0xb7f70000)
其他的变量(和值)分别对应 一些选项:
bin games include lib lib32 lib64 local sbin share src X11R6
参考文章:
-v, --verbose print all information
ldd命令其实是依靠设置一些环境变量而实现的(也就是说ldd的作用只是设置一些环境变量的值)
3、man ld.so()
更为详细的命令选项(或者参看man、info):
我们可 以看到以上等同于ldd ls。/lib/ld-linux.so.2还有其他一些选项:
1、Linux 动态库剖析()
$ ls /usr
我们可以从以上的内容中(ls /usr中)发现:/lib/ld-linux.so.2 (0xb7fad000)。
2、 LD_WARN
3、--inhibit-rpath LIST
4、LD_LIBRARY_VERSION
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7e94000)
/lib/ld-linux.so.2 (0xb7fad000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7df0000)
但 是ldd命令的本质是执行了:/lib/ld-linux.so.*
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7e0d000)
2、环境变量 LD_LIBRARY_PATH
相关热词: 命令
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/jq/jc/6401.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
PHP识别相片是否是颠倒的
时间:2020-12-28
-
python编程有哪些ide
时间:2020-12-28
-
python开发工程师是做什么
时间:2020-12-28
-
php构造函数的作用
时间:2020-12-28
-
php怎么跟数据库连接
时间:2020-12-28
-
php实现顺序线性表
时间:2020-12-28
-
Python多重继承中的菱形继
时间:2020-12-28
-
php中break的作用
时间:2020-12-28
热门文章
-
php中常用的正则表达式使用方法
时间:2020-12-25
-
asp与php区别是什么?
时间:2020-12-27
-
PHP识别相片是否是颠倒的,并且重新摆正
时间:2020-12-28
-
Yii授权之基于角色的存取控制 (RBAC)
时间:2020-12-23
-
php的一键安装包有哪些 php环境搭建
时间:2020-12-19
-
php实现对图片对称加解密(适用身份证加
时间:2020-12-25
-
php如何理解面向对象
时间:2020-12-28
-
超详细分析php docker的原理及作用
时间:2020-12-27
-
Python控制Excel实现自动化办公
时间:2020-12-23
-
session的作用是什么
时间:2020-12-25
