解压静态库.a文件

Posted WeiAreYoung

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解压静态库.a文件相关的知识,希望对你有一定的参考价值。

目录(?)[-]

  1. 分离arch
  2. 抽离a文件的object
  3. 获取文件

首先先准备一个静态库.a文件,比如叫staticLibrary.a,放在桌面的test目录里。

分离arch

首先先file一下staticLibrary.a,看一下该文件包含几种arch。

~  cd Desktop/test
test  ls
staticLibrary.a
test  file staticLibrary.a 
staticLibrary.a: Mach-O universal binary with 2 architectures
staticLibrary.a (for architecture armv7):   current ar archive random library
staticLibrary.a (for architecture arm64):   current ar archive random library
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

可以看到该文件包含两种arch,分别是armv7和arm64。 
由于下面抽离object的时候必须是要单一的库,所以这里我们之抽出armv7并命名为v7.a:

lipo staticLibrary.a -thin armv7 -output v7.a
   
  • 1
  • 1

这时候应该在test目录下多了一个v7.a文件。

抽离.a文件的object

ar -x v7.a
   
  • 1
  • 1

你会发现会多出一些.o文件

获取文件

比如刚才多出来了一个View.o文件,使用以下命令进行获取:

nm View.o > view.m
   
  • 1
  • 1

OK 去看一下view.m文件吧

以上是关于解压静态库.a文件的主要内容,如果未能解决你的问题,请参考以下文章

查看静态库.a文件包含的内容

打包静态库.a文件的方法(ar,ranlib,nm命令介绍)

开源库的使用方法以及libjpeg的移植详解

linux下的静态库创建与查看,及如何查看某个可执行依赖于哪些动态库

Linux里.a文件是啥啊

iOS 之.a静态库创建、打包以及静态库之间的引用