-Wl 表示后面的参数也就是-soname,libhello.so.1直接传给连接器ld进行处理。实际上,每一个库都有一个soname,当连接器发现它正 在查找的程序库中有这样一个名称,连接器便会将soname嵌入连结中的二进制文件内,而不是它正在运行的实际文件名,在程序执行期间,程序会查找拥有 soname名字的文件,而不是库的文件名,换句话说,soname是库的区分标志。这样做的目的主要是允许系统中多个版本的库文件共存,习惯上在命名库文件的时候通常与soname相同libxxxx.so.major.minor其中,xxxx是库的名字,major是主版本号,minor 是次版本号简单的来说,soname指定了库的名字,而不去管生成的是什么名字的库,在做连接是将这个soname指定的名字加入执行文件中,而程序运行是也是去加载soname指定的库文件名。所以如果程序连接了新升级的库,只需要将这个新库拷贝到目录下面后,对其以soname做一个符号链接就能调用。如果库升级了,但是程序依旧使用旧的链接库,那么只需对这个将旧库名字软链接到新升级的库中去即可。Linux中的newgrp命令Linux下面系统开发Makefile须知(动态链接库的深入理解)相关资讯 Linux基础学习 深入理解Linux soname
- Linux 系统添加操作记录审计 (01/29/2013 16:40:23)
- 如何学习Linux系统命令和工具 (01/03/2013 13:24:48)
- Linux/Unix下pid文件作用浅析 (12/27/2012 12:03:42)
| - Linux基础学习:文件的隐藏属性 (01/18/2013 16:28:25)
- Linux-x86_64 Error: 28: No space (12/27/2012 18:41:19)
- Linux环境变量的备份与恢复 (12/25/2012 19:14:57)
|
本文评论 查看全部评论 (0)