iOS架构-解压静态库.a文件并导出.m伪代码文件(9)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shifang07/article/details/89854214

之前合成了静态库.a, 有时候我们会拿到别人提供的静态库,但是编译报错,这时候最先要考虑的一步就是这个静态库是否支持我们编译的架构。怎么查看支持的架构?废话不多说!下面亲自实验一下

第一步:

准备一个静态库.a文件,比如我们之前制作的 libVideoPlayerLib.a,放在桌面的test目录里。
在这里插入图片描述

第二步:

  1. 打开终端:cd 到 libVideoPlayerLib.a 所在的文件夹test下 .
  2. 查看 libVideoPlayerLib.a 包含几种架构 arch 。 (file 命令)
  3. 分离出一种架构的.a。(lipo **.a -thin armv7 -output armv7.a)
  4. 抽离.a文件的object文件.o。(ar -x armv7.a)
  5. 将.o 转换为 .m。(nm ****.o > ****.m)
Last login: Sun May  5 19:30:20 on ttys004
lzz-Mac-mini:~ suning$ cd /Users/suning/Desktop/test 
lzz-Mac-mini:test suning$ file /Users/suning/Desktop/test/libVideoPlayerLib.a 
/Users/suning/Desktop/test/libVideoPlayerLib.a: Mach-O universal binary with 4 architectures: [arm_v7:current ar archive random library] [arm64:current ar archive random library]
/Users/suning/Desktop/test/libVideoPlayerLib.a (for architecture armv7):	current ar archive random library
/Users/suning/Desktop/test/libVideoPlayerLib.a (for architecture i386):	current ar archive random library
/Users/suning/Desktop/test/libVideoPlayerLib.a (for architecture x86_64):	current ar archive random library
/Users/suning/Desktop/test/libVideoPlayerLib.a (for architecture arm64):	current ar archive random library
lzz-Mac-mini:test suning$ lipo libVideoPlayerLib.a -thin armv7 -output armv7.a
lzz-Mac-mini:test suning$ ar -x armv7.a
lzz-Mac-mini:test suning$ nm VideoPlayerLib.o > VideoPlayerLib.m

在这里插入图片描述6. 打开导出到.m 伪代码
在这里插入图片描述通过伪代码可以了解.m 的实现过程

猜你喜欢

转载自blog.csdn.net/shifang07/article/details/89854214