【发布时间】:2012-09-21 20:18:07
【问题描述】:
我的 Mac 上有一个静态库,想知道这个库是否是为 armV7s 架构构建的?是否有任何命令/工具可用于显示此库中支持的架构?
谢谢你, 卡姆兰
【问题讨论】:
标签: ios linux macos unix static-libraries
我的 Mac 上有一个静态库,想知道这个库是否是为 armV7s 架构构建的?是否有任何命令/工具可用于显示此库中支持的架构?
谢谢你, 卡姆兰
【问题讨论】:
标签: ios linux macos unix static-libraries
您可以使用 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):
【讨论】:
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
【讨论】:
不同意其他答案,但这里还有一个选项:使用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
【讨论】: