저는 ARM7 용 정적 라이브러리를 cMake로 빌드했습니다. 일반적으로 .a 파일에 다음 명령을 사용하면 아키텍처를 보여줍니다."otool"및 "file"은 ".a"파일의 아키텍처를 표시 할 수 없습니다.
f.e.
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
또는 f.e.
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
이게 무슨 의미입니까? 내 도서관을 짓기 위해 어떤 실수를 할 수 있습니까?
업데이트 : 이고르, 감사합니다!
나는 명령으로 오브젝트 파일을 추출 :아칸소 -t mylib.a
아칸소 -xv mylib.a myobj.o
-t 바이너리의 목록을 보여줍니다
-xv는 구체적인 바이너리 파일을 추출합니다.