12、框架版本控制与伞形框架详解

框架版本控制与伞形框架详解

1. 框架创建基础规则

在创建框架时,要确保库中每个符号仅被定义一次,并且库中不允许有“公共”符号。在 C 代码里,必须使用单一的真实定义,其他定义前要加上 extern 关键字。

当构建一个程序并将其与动态共享库链接时,库的安装路径会被记录在程序中。苹果提供的系统框架,其路径是绝对路径;第三方框架的路径则相对于包含该框架的应用程序包。这种记录库路径的方式能提升程序的启动性能,动态链接编辑器可直接找到动态共享库并将其链接到程序中。这意味着,程序运行时,所需的库必须安装在记录路径所指示的位置,或者安装在框架和库的标准备用位置之一。

2. 动态共享库的依赖与版本控制

动态共享库可能依赖于其他动态共享库,这些依赖关系会记录在库的可执行文件中。当动态链接编辑器将程序与第一个动态共享库链接时,它能获取这些依赖库的路径并进行链接。所以,使用动态共享库的用户在链接程序时无需了解其依赖关系。

动态共享库还可以进行版本控制,从而实现向后兼容和一定程度的向前兼容。版本分为主要版本(不兼容版本)和次要版本(兼容版本)。

2.1 主要版本

主要版本也叫不兼容版本,与使用框架动态共享库的旧版本链接的程序不兼容。若此类程序尝试使用框架的新版本运行,可能会出现运行时错误。

框架的所有主要版本通常都保存在框架包内,与当前版本不兼容的程序仍可使用其兼容的版本运行。框架每个主要版本的路径会编码该版本信息,例如 /System/Library/Frameworks/Boffo.framework/Versions/A/Boffo

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值