zoukankan      html  css  js  c++  java
  • linux下的ldd的作用

    https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/ldd.html

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

    示例:查看test程序运行所依赖的库:

    /opt/app/todeav1/test$ldd test
    libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00000039a7e00000)
    libm.so.6 => /lib64/libm.so.6 (0x0000003996400000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00000039a5600000)
    libc.so.6 => /lib64/libc.so.6 (0x0000003995800000)
    /lib64/ld-linux-x86-64.so.2 (0x0000003995400000)
    
    • 第一列:程序需要依赖什么库
    • 第二列: 系统提供的与程序需要的库所对应的库
    • 第三列:库加载的开始地址

    通过上面的信息,我们可以得到以下几个信息:

    1. 通过对比第一列和第二列,我们可以分析程序需要依赖的库和系统实际提供的,是否相匹配
    2. 通过观察第三列,我们可以知道在当前的库中的符号在对应的进程的地址空间中的开始位置

    如果依赖的某个库找不到,通过这个命令可以迅速定位问题所在;

    注解

    原理: ldd不是个可执行程式,而只是个shell脚本; ldd显示可执行模块的dependency的工作原理,其实质是通过ld-linux.so(elf动态库的装载器)来实现的。ld-linux.so模块会先于executable模块程式工作,并获得控制权,因此当上述的那些环境变量被设置时,ld-linux.so选择了显示可执行模块的dependency。

    诸位正值青春年少,一定恣情放纵,贪恋香艳梅施之情,喜欢风流雅韵之事,洒脱木拘。然而诸位可知,草上露一碰即落,竹上霜一触即溶,此种风情难于长久。
  • 相关阅读:
    CI框架源码学习笔记1——index.php
    angular.js的post数据方式
    腾讯2018年9月秋招前端笔试题--编程题
    有赞2018年9月秋招一面
    2018阿里秋招笔试编程题
    css3 flex布局
    tomcat启动后,无法访问,报404
    2018网易前端实习面试总结
    2018网易前端实习笔试编程题总结
    set用法
  • 原文地址:https://www.cnblogs.com/shilipojianshen/p/13280441.html
Copyright © 2011-2022 走看看