ldd <可执行文件名>       查看可执行文件链接了哪些  系统动态链接库nm <可执行文件名>       查看可执行文件里面有哪些符号strip <可执行文件名>      去除符号表可以给可执行文件瘦身如果我们想从可执行程序里面提取出来一点什么文本信息的话,还可以用strings命令strings <可执行文件名>

Linux操作系统上面的动态共享库大致分为三类:

1、操作系统级别的共享库和基础的系统工具库

比方说libc.so, libz.so, libpthread.so等等,这些系统库会被放在/lib和/usr/lib目录下面,如果是64位操作系统,还会有/lib64和/usr /lib64目录。如果操作系统带有图形界面,那么还会有/usr/X11R6/lib目录,如果是64位操作系统,还有/usr/X11R6 /lib64目录。此外还可能有其他特定Linux版本的系统库目录。

这些系统库文件的完整和版本的正确,确保了Linux上面各种程序能够正常的运行。

2、应用程序级别的系统共享库

并非操作系统自带,但是可能被很多应用程序所共享的库,一般会被放在/usr/local/lib和/usr/local/lib64这两个目录下面。很多你自行编译安装的程序都会在编译的时候自动把/usr/local/lib加入gcc的-L参数,而在运行的时候自动到/usr/local /lib下面去寻找共享库。

以上两类的动态共享库,应用程序会自动寻找到他们,并不需要你额外的设置和担心。这是为什么呢?因为以上这些目录默认就被加入到动态链接程序的搜索路径里面了。Linux的系统共享库搜索路径定义在/etc/ld.so.conf这个配置文件里面。这个文件的内容格式大致如下:

/usr/X11R6/lib64  /usr/X11R6/lib  /usr/local/lib  /lib64  /lib  /usr/lib64  /usr/lib  /usr/local/lib64  /usr/local/ImageMagick/lib

假设我们自己编译安装的ImageMagick图形库在/usr/local/ImageMagick目录下面,并且希望其他应用程序都可以使用 ImageMagick的动态共享库,那么我们只需要把/usr/local/ImageMagick/lib目录加入/etc/ld.so.conf文件里面,然后执行:ldconfig 命令即可。

ldcofig将搜索以上所有的目录,为共享库建立一个缓存文件/etc/ld.so.cache。为了确认ldconfig已经搜索到ImageMagick的库,我们可以用上面介绍的strings命令从ld.so.cache里面抽取文本信息来检查一下:

strings /etc/ld.so.cache | grep ImageMagick  

输出结果为:

/usr/local/ImageMagick/lib/libWand.so.10  /usr/local/ImageMagick/lib/libWand.so  /usr/local/ImageMagick/lib/libMagick.so.10  /usr/local/ImageMagick/lib/libMagick.so  /usr/local/ImageMagick/lib/libMagick++.so.10  /usr/local/ImageMagick/lib/libMagick++.so已经成功了!

3、应用程序独享的动态共享库

有很多共享库只被特定的应用程序使用,那么就没有必要加入系统库路径,以免应用程序的共享库之间发生版本冲突。因此Linux还可以通过设置环境变量LD_LIBRARY_PATH来临时指定应用程序的共享库搜索路径,就像我们上面举的那个例子一样,我们可以在应用程序的启动脚本里面预先设置 LD_LIBRARY_PATH,指定本应用程序附加的共享库搜索路径,从而让应用程序找到它

如何查看linux动态链接库文件的版本等其他信息相关推荐

  1. 在win10查看本机linux的文件,Windows 10变身开发者利器:内置Linux内核,轻松查看Linux子系统文件...

    原标题:Windows 10变身开发者利器:内置Linux内核,轻松查看Linux子系统文件 来源:创事记 终于!在Windows里可以访问Linux文件了. 这表明,微软插入开源界的触角,越来越深入 ...

  2. 如何查看linux中文件打开情况

    如何查看linux中文件打开情况 前言 我们都知道,在linux下,"一切皆文件",因此有时候查看文件的打开情况,就显得格外重要,而这里有一个命令能够在这件事上很好的帮助我们-它就 ...

  3. 如何查看linux系统的jdk版本

    如何查看linux系统的jdk版本 1.查找使用的jdk安装后的目录 echo $JAVA_HOME: 假设为:/opt/soft/java 2.进入到jdk安装目录下面的bin目录 cd  /opt ...

  4. linux中怎么看文件的i-node,如何查看linux中文件打开情况?

    原标题:如何查看linux中文件打开情况? 本文转自公众号:编程珠玑 01 前言 我们都知道,在linux下,"一切皆文件",因此有时候查看文件的打开情况,就显得格外重要,而这里有 ...

  5. 查看linux驱动文件,linux怎么查看硬件驱动

    你们知道怎么查看Linux的硬件驱动吗?下面是学习啦小编带来的关于linux怎么查看硬件驱动的内容,欢迎阅读! linux怎么查看硬件驱动? Linux下查看网卡驱动和版本信息 查看网卡生产厂商和信号 ...

  6. 查看 Linux 内核以及系统版本的几种方法

    文章目录 前言 一.使用`uname`命令查看 二.使用`hostnamectl`命令查看 三.通过查看 `/proc/version` 文件确认 四.使用 `/etc/issue` 查看 五.使用 ...

  7. cmd中如何查看当前绝对路径_如何查看 Linux 中文件打开情况?

    (给Linux爱好者加星标,提升Linux技能) 作者:守望(本文来自作者投稿,简介见末尾) 前言 我们都知道,在linux下,"一切皆文件",因此有时候查看文件的打开情况,就显得 ...

  8. 查看 Linux 中文件打开情况

    转载自公众号:LinuxHub 前言 我们都知道,在linux下,"一切皆文件",因此有时候查看文件的打开情况,就显得格外重要,而这里有一个命令能够在这件事上很好的帮助我们-它就是 ...

  9. 查看linux下文件是否存在,linux中怎么查看文件是否存在

    两个方式:find命令或者shell脚本. 1.find命令 find是linux下用于查找文件的通用方法. find语法: find [指定查找目录] [查找规则] [查找完后执行的action] ...

最新文章

  1. 【hdu 1527】取石子游戏
  2. Redis持久化-数据丢失及解决
  3. The import com.sun.tools cannot be resolved
  4. Raid学习——raid0、raid1、raid5、raid0+1、raid1+0
  5. oracle参数优化
  6. 滤镜应用——拼图效果
  7. Ubuntu18.04之boost警告报错
  8. 经过多次试验后第一个成功地实现 HTTPService 与 MXML 之间传递数据,ArrayCollection 与DataGrid 之间成功绑定...
  9. 获取指定年份至今年分列表
  10. 数据结构与算法面试题80道
  11. 第三十三章 SQL命令 DROP INDEX
  12. 管理学-“三个和尚”
  13. 设置chrome浏览器在一个标签页中打开链接自动跳转到新标签页
  14. android 地图侧滑栏,Android封装侧滑菜单栏
  15. 生命是什么?生物化学、物理学、哲学对生命本源的共同探索
  16. 集运转运系统源码,快递物流一件代付系统源码
  17. Invalid Component definition:header
  18. zippo蚀刻计算机键盘,【图片】蚀刻机自己填漆【zippo吧】_百度贴吧
  19. 数控自动编程软件比你想象的更方便!
  20. Hadoop-MapReduce的工作原理

热门文章

  1. 皮一皮:双11到底买了啥...
  2. 开发文件上传功能稍不注意就会引发安全漏洞
  3. 每日一皮:鼓励师招到了,原来是这样的...
  4. 我说分布式事务之最大努力通知型事务
  5. 中石油《计算机应用基础》,中石油华东《计算机应用基础》2018年秋学期在线作业(一).doc...
  6. mysql中有哪些数值型函数_mysql数值型函数汇总
  7. asp.net oracle优化,[转]ASP.NET性能优化
  8. opencv 保存读取mat
  9. python内积 卷积
  10. Flask 数据迁移 报错 Table 'xxx' is already defined for this MetaData instance