2012-08-09学习笔记

来源:互联网 发布:苹果手机mac地址怎么查 编辑:程序博客网 时间:2024/05/17 03:25

ldd 命令:print shared library dependencies

 

1)与动态库相关的三个概念
link name
soname
real name
其中link name, soname都是符号连接,real name是真正的动态库。

2)它们之间的关系是
link name -> soname -> realname
上面"->"表示指向

3)举例:
libdl.so -> libdl.so.2 ->libdl-2.3.6.so

4)作用说明:
link name -通常都是指向最新版本的soname,从而在编译程序的时候-l<name_of_lib>,就连接了最新的库。

soname -ldd <lib/bin_app>显示的就是soname和其指向的realname。发布应用程序使用到的库补丁通常还要调整soname使指向你发布的realname新库。

realname -真正的动态库,通常应该strip掉其中的符号,以减小其体积。

5) link name  soname  realname  是用来解决类似 Windows下的 Dlls hell 问题的,所以才整出这三个名子

 

原创粉丝点击