iOS版:Unix的:苹果提取关于支持的体系结构(S)的静态库信息。 怎么样?(iOS:Unix

2019-09-22 18:08发布

我有我的Mac和静态库好奇,想知道的lib是专为armV7s架构或不? 任何命令/工具可用来显示该库支持的架构?

谢谢你,卡姆兰

Answer 1:

您可以使用otool用于获取这些信息。

从otool的手册页

-l显示该对象文件使用共享库的名称和版本号。 以及共享库ID,如果该文件是共享库。

> otool -L libRaptureXML_universal.a 

Archive : libRaptureXML_universal.a (architecture armv7)
libRaptureXML_universal.a(RXMLElement.o) (architecture armv7):
Archive : libRaptureXML_universal.a (architecture i386)
libRaptureXML_universal.a(RXMLElement.o) (architecture i386):


Answer 2:

your-mac:~ yourlogin$ file /Path/to/somebinary

/Path/to/somebinary: Mach-O universal binary with 3 architectures
/Path/to/somebinary (for architecture x86_64):    Mach-O 64-bit executable x86_64
/Path/to/somebinary (for architecture i386):      Mach-O executable i386
/Path/to/somebinary (for architecture ppc7400):   Mach-O executable ppc


Answer 3:

与其他的答案不是不同意,但这里有一个选择:用lipo命令。

苹果手册页脂

您可以运行lipo -info上的可执行文件,或库。 一些例子:

minime:arc username$ lipo -info libarclite_iphonesimulator.a
input file libarclite_iphonesimulator.a is not a fat file
Non-fat file: libarclite_iphonesimulator.a is architecture: i386

minime:iPhone username$ cd HelloWorld.app/
minime:HelloWorld.app username$ lipo -info HelloWorld
Non-fat file: HelloWorld is architecture: armv7


文章来源: iOS:Unix:Mac extract info from a static lib regarding supported architecture(s). How?