码迷,mamicode.com
首页 > 系统相关 > 详细

linux 共享库版本管理

时间:2014-08-21 15:21:24      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:blog   http   使用   os   文件   ar   html   log   

原理

请看Linux 如何解决共享库的版本控制

我的理解

  1. linux在系统内部将用到的共享库版本都保留下来,并没有覆盖。(不同soname)
  2. 调用程序和共享库在链接的时候已经记录下来了共享库的soname。
  3. libxx.so文件一般只是一个软链接。只是为了与gcc命令参数-lxx 中的xx名称一致。实际中可以在不同目录创建相同名字的libxx.so链接到不同soname的共享库。gcc -lxx使用-L参数指定不同目录位置,实现使用不同版本的共享库链接。在链接完成之后,libxx.so就失去了他的作用。因为加载共享库时直接查找soname。
  4. 实际中发现一个奇怪的现象:例如将soname为libxx.so.1的软链接拷贝到/usr/lib64 或/lib64文件夹下,其文件属性发生了变化:不再是软链接了,而是一个regular file。
  5. 基本就是这样。总算明白了linux里面libxx.so后面的那串或短或长的数字是干什么的了……
  6. 生成共享库时要注意添加参数指明其soname: -Wl,-soname=libxx.so.1 其中-Wl,后面的东东是链接时带上的参数K/V。
  7. 没了。

linux 共享库版本管理,布布扣,bubuko.com

linux 共享库版本管理

标签:blog   http   使用   os   文件   ar   html   log   

原文地址:http://my.oschina.net/u/1864567/blog/305118

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!