lipo制作通用版本静态库

目的

主要是使用lipo命令在macOS上创建通用版本的静态库(.a文件),来支持多种架构,如arm64,x86_64。

学习目的:

  • 了解mac 不同架构arm64, x86_64
  • 了解lipo命令

了解多架构的mac

随着apple发展, 开始逐步将macOS从Intel x86_64架构转向Apple Silicon的arm64架构【M系列 Apple 硅芯片】, 也就是Apple 苹果自己芯片。Apple 宣布 Mac 采用 Apple 芯片的转移计划

在这里插入图片描述

在这里插入图片描述
至于为什么要转成Apple 芯片, 那其中原因想必不用细说。 总之, 鉴于Intel 芯片被动性, 搞一套自己的它不香吗? 然后兼容自己所有的tv os、 watch os、 macos、 ios一套设备, 形成自己一套强大商业链。什么是苹果硅? 苹果处理器的功能

很明显Intel 芯片 采用x86_64 架构, 苹果芯片 silicon 采用 arm64架构, 然后从intel 芯片到苹果芯片是有一个果断节点, 但也就是为啥我们要写这篇博客原因了, 要兼容两者架构, 因此必须写一个通用版本。

当如果我们谈论体系结构,我们会发现非常重要的差异。 例如,x86处理器(来自Intel)具有CISC架构,该架构在执行复杂操作方面享有很高的性能。 这就是为什么ARM拯救了英特尔和AMD都忽略的RISC架构的原因。 这就是为什么在体系结构级别上我们已经看到了非常重要的差异,它们使一个处理器与另一个处理器完全对立。

lipo

lipo是macOS中的一个命令行工具,用于操作通用二进制文件。它可以用来创建、查看和提取通用二进制文件中的架构。在创建静态库时,lipo允许我们将多个针对不同架构的静态库合并成一个通用静态库。

如何利用lipo编译通用版本静态库

  • 编译针对不同架构的静态库

    首先,我们需要为每种目标架构分别编译静态库。假设我们可以为x86_64和arm64架构分别编译静态库。这将产生两个独立的静态库文件,例如libMyLib_x86_64.a和libMyLib_arm64.a

  • 使用lipo合并静态库

    当我们有了针对不同架构

  • 26
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

道阻且长,行则降至

无聊,打赏求刺激而已

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值