2014-12-08 3 views
1

저는 앱에서 사용해야하는 정적 라이브러리를 저에게 제공했습니다. 나는 그것이 ARM64를 지원한다고 말했다.마하 헤더와 뚱뚱한 헤더의 차이점은 무엇입니까?

otool -hV mylibrary.a을 사용하여 마하 헤더를 나열하면 CPU 유형이 x86_64입니다.

otool -fv mylibrary-a을 사용하여 fat 헤더를 나열하면 I386, x86_64, ARM, ARMv7S CPU 유형을 갖게됩니다. ARM64.

내가 수행하려고하는 아키텍처에 대해 마하 헤더가 필요하다는 것을 이해했습니다. 그러나, 응용 프로그램은 64 비트 장치에서 잘 작동합니다.

iOS 개발에서 fat 헤더와 mach 헤더의 차이점은 무엇입니까? 이 라이브러리는 64 비트 앱에서 안전하게 사용할 수 있습니까?

답변

1

mach 헤더와 universal header는 유사한 정보를 제공합니다. 그들은 cputype 및 cpusubtype과 같은 것을 식별합니다. 범용 헤더는 또한 각 아키텍처의 파일 오프셋/크기를 나타냅니다. 유니버설 헤더가 마하 헤 더로부터 정보를 얻고 있다고 나는 믿는다. 그러나 나는 그것에 대해 쉽게 틀릴 수있다. 만 x86_64에 표시되는 경우

, otool -hv -arch all myLibrary.a

FWIW을 시도, 쉬운 방법이 lipo -info myLibrary.a을하는 것입니다. 필요한 슬라이스가 보이면 라이브러리 자체가 해당 슬라이스에서 제대로 작동하는지 확인해야합니다.