linux中查询动态库版本的命令,linux下动态库及版本号控制

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

我们都知道在Linux系统下,动态库的命名遵循了特定的规则lib{name}.so

如上所示,其中{name}可以替换为你自己声明的动态库名称。

可能大部分的人都了解就到这里,并没有关注动态库文件后面的版本控制。如果你已经关注了,那么后面的就可以不用看啦。

Linux下动态库的命名规范

Linux下引入了一套命名机制,但是这个机制仅是一个约定,并不强迫大家都按照这种方法。

Real Name

共享库本身的文件名,共享库的命名必须是libname.so.x.y.z,这里xyz代表的是此库文件的版本号。前缀: lib

后缀: so

name:自定义的库文件名

x: Major Version Number,主版本号,不兼容。重大升级,不同主版本之间的库是不兼容的。

y: Minor Version Number, 次版本号,向下兼容。增量升级,增加一些新的接口但保留原有接口。高次版本的库向后兼容低次版本的库。

z: Release Version Number,发布版本号,互相兼容。诸如库的一些错误修改、性能改进等,不会添加新接口,也不会更改接口。主版本和次版本完全相同的情况下,不同发行版本之间完全兼容。

SO-NAME

在Linux系统中,每个共享库都有一个对应的SO-NAME(共享库文件名去掉次版本号和发布版本号)。

小结

综合上述两点,当我们遵循了Linux的这种机制并生成了自己的动态库文件后。咱们可以对库文件设置软连接,就可以避免真实库文件版本数字一直在变动,而不得不调整调用的代码。

例如:有一个 libHelloWorld.so.x.y.zln -s libHelloWorld.so.x.y.z libHelloWorld.so.x

在代码中,查找库文件此软连接的名字,在主版本未改动的情况下,动态库版本变动只需调整软连接即可。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值