博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux执行命令缺少共享库解决方法和ldd命令说明
阅读量:4499 次
发布时间:2019-06-08

本文共 2134 字,大约阅读时间需要 7 分钟。

linux执行命令缺少共享库解决方法和ldd命令说明

[root@xiaogaokui ~]# which ldd
/usr/bin/ldd
[root@xiaogaokui ~]# file /usr/bin/ldd
/usr/bin/ldd: Bourne-Again shell script, ASCII text executable

ldd是一个shell脚本,ldd可以列出一个程序所需要得动态链接库(so)

[root@xiaogaokui ~]# ldd /usr/bin/ls
linux-vdso.so.1 => (0x00007ffd84fe7000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f46407cf000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007f46405ca000)
libacl.so.1 => /lib64/libacl.so.1 (0x00007f46403c0000)
libc.so.6 => /lib64/libc.so.6 (0x00007f463fffd000)
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f463fd9b000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f463fb96000)
/lib64/ld-linux-x86-64.so.2 (0x0000561fa1b64000)
libattr.so.1 => /lib64/libattr.so.1 (0x00007f463f991000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f463f775000)
注意:在 ldd 命令打印的结果中,“=>”左边的表示该程序需要连接的共享库之 so 名称,
右边表示由 Linux 的共享库系统找到的对应的共享库在文件系统中的具体位置。
默认情况下,/etc/ld.so.conf 文件中包含有默认的共享库搜索路径。

[root@xiaogaokui ~]# cat /etc/ld.so.conf

include ld.so.conf.d/*.conf
# 如果需要,将所需共享库绝对路径卸载此处
# 或者在/etc/ld.so.conf.d/下新增conf文件引用共享库绝对路径
新增系统共享库需要运行ldconfig,用来属性系统的共享库缓存
为了减少共享库系统的库搜索时间,共享库系统维护了一个共享库 so 名称的缓存文件/etc/ld.so.cache。
因此,在安装新的共享库之后,一定要运行 ldconfig 刷新该缓存。

LD_LIBRARY_PATH是Linux环境变量名,该环境变量主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径。

移植程序时的经常碰到需要使用一些特定的动态库,而这些编译好的动态库放在我们自己建立的目录里,
这时可以将这些目录设置到LD_LIBRARY_PATH中。
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:$LD_BIBRARY_PATH

运行命令常见报错:

error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
1.通过ldd脚本检测命令所需动态链接库
# ldd 命令
libappindicator3.so.1 => not found
2.在系统上安装共享库或者find
3.建立映射关系
# ln -s /xx/libc.so.6 /usr/bin/libc.so.6
4.source变量LD_LIBRARY_PATH

[oracle@xiaogaokui ~]$ ldd --help

Usage: ldd [OPTION]... FILE...
--help print this help and exit
--version print version information and exit
-d, --data-relocs process data relocations
-r, --function-relocs process data and function relocations
-u, --unused print unused direct dependencies
-v, --verbose print all information

For bug reporting instructions, please see:

<http://www.gnu.org/software/libc/bugs.html>.

 

转载于:https://www.cnblogs.com/xiaogaokui/p/9637132.html

你可能感兴趣的文章
typeof
查看>>
@Mapper 和 @MapperScan 区别
查看>>
Unity笔记(3)自学第二天
查看>>
[NOIP2013] 华容道
查看>>
(转)java并发编程--Executor框架
查看>>
算法竞赛入门经典 2.2 循环结构程序设计
查看>>
sql server 2000/2005 判断存储过程、触发器、视图是否存在并删除
查看>>
mysql 隔离级别 脏读 测试
查看>>
Datagridview获取列名为“”的值
查看>>
Python 爬虫的工具列表 附Github代码下载链接
查看>>
IE6/7中li浮动外边距无法撑开ul的解决方法
查看>>
SOS团队介绍
查看>>
python 解析Excel
查看>>
$_SERVER
查看>>
Lambda表达式-使用说明
查看>>
【第一篇:C++与opencv】图片的读取和显示
查看>>
PV inverter启动 ----系列一
查看>>
Windows 8在Vmware 8 中安装提示:windows cannot read the<product key> setting from the unattend answer...
查看>>
牛客训练六:海啸(二维树状数组+vector函数的使用)
查看>>
css重要属性float学习
查看>>