linux共享库

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

SO-NAME软链接

 
    程序在调用动态库的时候,通过库的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

 
4. 默认的库路径 /lib, /usr/lib

相关文章: