我已经用 cMake 为 ARM7 构建了一些静态库。通常,当您对 .a 文件使用下一个命令时,它会显示架构:
铁
mac:libs User$ file ./libcurl.a
./libcurl.a: Mach-O universal binary with 3 architectures
./libcurl.a (for architecture armv6): current ar archive random library
./libcurl.a (for architecture armv7): current ar archive random library
./libcurl.a (for architecture i386): current ar archive random library
或铁
mac:libs User$ otool -vf ./libboost_regex.a
Fat headers
fat_magic FAT_MAGIC
nfat_arch 3
architecture armv6
cputype CPU_TYPE_ARM
cpusubtype CPU_SUBTYPE_ARM_V6
capabilities 0x0
offset 68
size 9550024
align 2^2 (4)
architecture armv7
cputype CPU_TYPE_ARM
cpusubtype CPU_SUBTYPE_ARM_V7
capabilities 0x0
offset 9550092
size 9390544
align 2^2 (4)
architecture i386
cputype CPU_TYPE_I386
cpusubtype CPU_SUBTYPE_I386_ALL
capabilities 0x0
offset 18940636
size 9595040
align 2^2 (4)
但是现在,当我构建我的库时,“otool”和“file”无法显示它的架构。
mac:libs User$ otool -vf ./mylib_meta.a
Archive : ./mylib_meta.a
这是什么意思?我在建造图书馆时会犯什么错误?
更新: 伊戈尔,谢谢!
我用命令提取了目标文件:
ar -t mylib.a
ar -xv mylib.a myobj.o
-t 显示二进制文件列表
-xv 提取具体的二进制文件