ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ldd

2020-03-28 18:58:07  阅读:311  来源: 互联网

标签:ld ldd so.1 so lib64 共享


ldd

ldd(/usr/bin/ldd)本质是一个shell脚本,并不是一个二进制的可执行程序。

ldd可以列出一个程序运行所依赖的动态链接库(so文件)。

由于制作二进制程序的过程中经常需要判断需要哪些共享库的支持,所以要使用ldd找出所需的依赖并添加至目标系统中,以确保程序可以在独立的目标系统内可靠的运行。

eg.

# ldd /usr/bin/ls

        linux-vdso.so.1 =>  (0x00007ffc62b26000)

        libachk.so => /lib64/libachk.so (0x00007f1159b5f000)

        libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f1159938000)

        libcap.so.2 => /lib64/libcap.so.2 (0x00007f1159733000)

        libacl.so.1 => /lib64/libacl.so.1 (0x00007f115952a000)

        libc.so.6 => /lib64/libc.so.6 (0x00007f1159159000)

        libdl.so.2 => /lib64/libdl.so.2 (0x00007f1158f55000)

        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f1158d39000)

        librt.so.1 => /lib64/librt.so.1 (0x00007f1158b31000)

        libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f11588cf000)

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

        libattr.so.1 => /lib64/libattr.so.1 (0x00007f11586ca000)

"=>"左边的表示该程序需要连接的so 名称,右边表示由 Linux 的共享库系统找到的对应的共享库在文件系统中的具体位置。

默认情况下,/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 刷新该缓存。

标签:ld,ldd,so.1,so,lib64,共享
来源: https://www.cnblogs.com/tongyishu/p/12588724.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有