linux 开发板 ldd,Linux ldd命令

linux 开发板 ldd,Linux ldd命令Linux下的lld命令的主要作用:用来查看程式运行所需的共享库,常用来解决程式因缺少某个库文件而不能运行的一些问题。ldd是list,dynamic,dependencies的缩写,列出动态库依赖关系。可以用ldd–help或者manldd来看其用法。可以用which命令找到ldd的位置:$whichldd/usr/bin/ldd使用ldd,往往在制作自己的发行版时经常需要判断某条命…

大家好,又见面了,我是你们的朋友全栈君。

Linux下的lld命令的主要作用:用来查看程式运行所需的共享库,常用来解决程式因缺少某个库文件而不能运行的一些问题。

ldd是list, dynamic, dependencies的缩写,列出动态库依赖关系。可以用ldd –help或者man ldd来看其用法。可以用which命令找到ldd的位置:

$ which ldd

/usr/bin/ldd

使用ldd,往往在制作自己的发行版时经常需要判断某条命令需要哪些共享库文件的支持,以确保指定的命令在独立的系统内可以可靠的运行;

命令语法:

ldd [option]… file…

如下代码:

root@xxhui:/home/hui# ldd /bin/ls

linux-vdso.so.1 (0x00007ffeeffc3000)

libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f8e631c7000)

libacl.so.1 => /lib/x86_64-linux-gnu/libacl.so.1 (0x00007f8e62fbe000)

libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f8e62c19000)

libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f8e629a9000)

libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f8e627a5000)

/lib64/ld-linux-x86-64.so.2 (0x00005599a18e8000)

libattr.so.1 => /lib/x86_64-linux-gnu/libattr.so.1 (0x00007f8e6259f000)

libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f8e62382000)

在 ldd 命令打印的结果中,“=>”左边的表示该程序需要连接的共享库之 so 名称,右边表示由 Linux 的共享库系统找到的对应的共享库在文件系统中的具体位置。默认情况下,/etc/ld.so.conf 文件中包含有默认的共享库搜索路径。

其中输出的结果分三列,依次为:程序需要依赖的库、系统提供的与程序需要的库所对应的库、库加载的开始地址。

没找到共享库的情况

如果使用 ldd 命令时没有找到对应的共享库文件和其具体位置,可能是以下情况:

共享库没有安装在该系统中;

共享库保存在 /etc/ld.so.conf 文件列出的搜索路径之外的位置。

通常情况下,许多开放源代码的程序或函数库都会默认将自己安装到 /usr/local 目录下的相应位置(如:/usr/local/bin 或 /usr/local/lib),以便与系统自身的程序或函数库相区别。而许多 Linux 系统的 /etc/ld.so.conf 文件中默认又不包含 /usr/local/lib。因此,往往会出现已经安装了共享库,但是却无法找到共享库的情况

具体解决办法如下:

检查 /etc/ld.so.conf 文件,如果其中缺少 /usr/local/lib 目录,就添加进去;注意:在修改了 /etc/ld.so.conf文件或者在系统中安装了新的函数库之后,需要运行一个命令:ldconfig ,该命令用来刷新系统的共享库缓存,即 /etc/ld.so.cache 文件。为了减少共享库系统的库搜索时间,共享库系统维护了一个共享库 so 名称的缓存文件/etc/ld.so.cache。因此,在安装新的共享库之后,一定要运行 ldconfig 刷新该缓存。

关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台

除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/131983.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 模型剪枝学习笔记 — EagleEye: Fast Sub-net Evaluation for Efficient Neural Network Pruning

    模型剪枝学习笔记 — EagleEye: Fast Sub-net Evaluation for Efficient Neural Network Pruning论文:https://arxiv.org/abs/2007.02491代码:https://github.com/anonymous47823493/EagleEye这篇论文一定要好好研究下,提出该剪枝方法的是暗物智能科技&中山大学,当初去面试过该公司,聊了将近一小时,大部分是关于剪枝的内容。。。。。。。可惜自己真实菜如狗。。。。。…

    2022年8月16日
    9
  • navicat 15 激活码【注册码】

    navicat 15 激活码【注册码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    42
  • 如何使用yum卸载mysql数据库_yum卸载mysql数据库方法(linux centos系统)

    如何使用yum卸载mysql数据库_yum卸载mysql数据库方法(linux centos系统)如何在linuxcentos系统中使用yum命令卸载mysql数据库呢?只需要使用yumremove命令即可轻松卸载mysql数据库了,方法很简单,只需要两个步骤即可。步骤一:执行下面的命令,查询有哪些mysql安装包可以卸载的,如下。[root@VM_230_32_centos~]#rpm-qa|grepmysqlphp-mysqlnd-5.6.32-1.el7.remi.x86…

    2022年5月22日
    38
  • java数组的声明_Java数组定义常用方法[通俗易懂]

    java数组的声明_Java数组定义常用方法[通俗易懂]Java数组定义常用方法Java中的数组、是一种简单的线性数据存储结构、他用牺牲自动扩展大小来换取与集合相比的唯一优势——查询效率的提升。Java中的数组有什么类型?我们要怎么定义这些数组呢?下面跟yjbys小编一起来学习Java数组定义常用方法吧!java中有两种数据类型:a)引用类型b)基础类型其中基础类型又有两种:b1)数值类型b2)及布尔类型。数组——也为java的一个数据类型、归类为引用…

    2022年6月2日
    47
  • jsp:include引入jsp文件的时候(如果被包含的文件存在js文件),不要用相对路径

    jsp:include引入jsp文件的时候(如果被包含的文件存在js文件),不要用相对路径先回忆一下二者的区别(对于此篇文章而言,二者在用法上没有区别) jsp:include是先编译一下included.jsp文件,然后再包含 先编译,后包含@ include是先把文件包含就来,然后统一编译 先包含,后编译  今天下午想把jQuery集成到项目中,发现怎么样都会出问题。原因就是路径问题。在集成时,我的思路是…

    2022年6月13日
    27
  • 鲲鹏920服务器_华为鲲鹏服务器

    鲲鹏920服务器_华为鲲鹏服务器安装任意Mysql版本都适用配置本地yum源备份原yum库文件并将新配置写入repo文件。#mv/etc/yum.repos.d//etc/yum.repos.d-bak#mkdir/etc/yum.repos.d#echo-e”[kunpeng]\nname=CentOS-kunpeng-Base-mirrors.huaweicloud.com\nbaseurl=https:…

    2022年10月16日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号