美文网首页
程序编译链接(六)-- Linux 动态库的组织

程序编译链接(六)-- Linux 动态库的组织

作者: wayyyy | 来源:发表于2020-08-31 21:01 被阅读0次

共享库版本命名

Linux 有一套规则来命名系统中的每一个共享库。它规定系统中的每一个动态库命名规则必须如下:

libname.so.x.y.z
  • 最前面使用前缀lib,中间是库的名字和后缀.so,最后面跟着三个数字组成的版本号。
  • x表示主版本号
  • y表示次版本号
  • z表示发布版本号

主版本号表示库的重大升级,不同主版本号之间是不兼容的。
次版本号表示库的增量升级,即增加一些新的接口符号,且保持原来的符号不变。
发布版本号表示库的一些错误修正,性能的改进,并不添加任何新的接口。

SO-NAME

每一个共享库都有一个对应的SO-NAME,这个SO-NAME即共享库的文件名去掉次版本号和发布版本号,保留主版本号。

在Linux 中,系统会为每一个共享库在它所在的目录创建一个

链接名

共享库的查找过程

共享库的创建和安装

共享库的创建

创建共享库最关键是使用2个参数:
-fPIC表示使用地址无关代码的技术来生产输出文件。
-shared表示输出结果是共享库的类型。

共享库的安装

最简单的方法就是将共享库复制到某个标准的共享库目录,如/lib/usr/lib,然后运行ldconfig命令即可

共享库的构造和析构函数

相关文章

网友评论

      本文标题:程序编译链接(六)-- Linux 动态库的组织

      本文链接:https://www.haomeiwen.com/subject/rtppsktx.html