美文网首页
程序编译链接(六)-- 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