27、Libtool库版本管理与运行时动态链接详解

Libtool库版本管理与运行时动态链接详解

1. Libtool库版本管理方案概述

Libtool开发者努力设计了一种版本管理方案,该方案能与任何Libtool平台所使用的方案相映射。此方案具有很高的灵活性,能够与现有Libtool平台未来的合理变更,甚至新的Libtool平台实现向前兼容。不过,它并非万能的。当Libtool为新的共享库平台进行扩展时,总会出现一些需要认真仔细评估的情况。由于没人能成为所有系统的专家,所以Libtool开发者在很大程度上依赖外部贡献,以创建从Libtool版本管理方案到新的或潜在的Libtool平台方案的正确映射。

1.1 库版本即接口版本

我们应避免将库版本号(无论是Libtool的还是特定平台的)视为产品的主版本、次版本和修订版本(也称为补丁或微版本)的值。实际上,这些值对操作系统加载器有着非常明确的意义,为了避免让加载器产生混淆,每次库有新版本发布时,都必须正确更新这些值。若加载器被混淆,可能会根据为库分配的错误版本信息加载错误的库版本。

共享库的版本号实际上代表的是接口版本。这里所说的接口,是指库向用户或其他想要调用该接口所提供函数的程序员呈现的应用二进制接口。可执行程序通常有一个明确的标准入口点(在C语言中通常称为main),而共享库有多个入口点,且这些入口点通常没有被广泛理解的标准化方式。这使得判断一个库的特定版本是否与同一库的另一个版本接口兼容变得更加困难。

在Libtool的版本管理方案中,共享库被认为支持一系列接口版本,每个版本由一个唯一的整数值标识。如果接口的任何公开可见方面在公开版本之间发生了变化,那么它就不能再被视为同一个接口,而是一个新的接口,由一个新的整数标识符来标识。每次

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值