zoukankan      html  css  js  c++  java
  • linux共享库

    linux共享库

        linux中共享库一般以.so.x.y.z 命名,其中x,y,z分别为主版本号、次版本号、发布版本号。同一个库,主版本号不同则相互不兼容;主版本相同,次版本号高的库比次版本号低的库有一些更新,增加了一些接口符号且保持原来的接口符号不变,但保持后向兼容;主版本号和次版本号相同,发布版本号不同,表示库的一些修改修正,不增加新功能。

    SO-NAME软链接

        SO-NAME 软链接:共享库 libname.so.x.y.z 的SO-NAME软链接命名为 libname.so.x 即去掉次版本号和发布版本号。其指向 主版本号为x的libname某一个库,一般为主版本号为x的最新的libname库。 
        程序在调用动态库的时候,通过库的SO-NAME软链接找到实际的库文件,进行调用。在系统中安装或者更新完库 libname.x.y.z 之后,需要执行ldconfig,用来新建或者更新libname库对应的SO-NAME软链接,让libname.so.x 软链接指向最新的库。

    ldd命令

        ldd命令用于查看程序需要哪些动态库。其实质是通过ld-linux.so 来实现的,ld-linux.so 模块会先于可执行程序工作,并获得控制权。实际上ldd exe,相当于执行/lib/ld-linux.so.2 --list exe

    ld-linux.so

        ld-linux.so是动态装载器的库文件,动态装载器用于程序执行时动态链接一些库。 
        启动一个程序时,ld-linux.so被调用,ld-linux.so检测程序依赖哪些动态库,然后搜索系统中是否存在所需要的动态库文件。其搜索的顺序为: 
    1. LD_LIBRARY_PATH 指定的目录 
    2. /etc/ld.so.cache 中的库路径(ld.so.cache 是 /etc/ld.so.conf 的缓存,用于快速查找,实际相当于查找 /etc/ld.so.conf 配置文件中指定的路径) 
    4. 默认的库路径 /lib, /usr/lib

  • 相关阅读:
    Oracle instr() 字符查找函数
    Oracle 中触发器增加存储过程commit问题
    Oracle 记录下jdbc thin client module名称
    sqoop job 实现自动增量导入
    Linux LVM--三种Logic Volume
    Kafka ISR and AR HW 、 LEO
    Kafka Rebalance机制分析
    Kafka 基础操作
    Kafka 通过python简单的生产消费实现
    Kafka为什么速度那么快?该怎么回答
  • 原文地址:https://www.cnblogs.com/gtarcoder/p/5734810.html
Copyright © 2011-2022 走看看