В OS X, как мне узнать, для какой архитектуры скомпилирована общая библиотека?
Мне нужно знать, скомпилировал ли libjpeg для архитектуры 32 или 64 бита, но не знаю, как узнать, есть ли команда, которая позволит мне проверить?
Ответы
Ответ 1
просто введите file libjpeg.dylib
, и вы получите результат следующим образом
libpoll.dylib: Mach-O universal binary with 3 architectures
libpoll.dylib (for architecture x86_64): Mach-O 64-bit dynamically linked shared library x86_64
libpoll.dylib (for architecture i386): Mach-O dynamically linked shared library i386
libpoll.dylib (for architecture ppc7400): Mach-O dynamically linked shared library ppc
Ответ 2
Команда file
будет работать нормально. Кроме того, вы можете использовать
otool
для печати заголовков жира.
$ otool -vf /usr/lib/libSystem.B.dylib
Fat headers
fat_magic FAT_MAGIC
nfat_arch 2
architecture ppc
cputype CPU_TYPE_POWERPC
cpusubtype CPU_SUBTYPE_POWERPC_ALL
offset 4096
size 2221800
align 2^12 (4096)
architecture ppc64
cputype CPU_TYPE_POWERPC64
cpusubtype CPU_SUBTYPE_POWERPC64_ALL
offset 2228224
size 2169980
align 2^12 (4096)
Ответ 3
Используйте команду file
:
[[email protected]:Xcode/FSLogger]$ file ./original (07-31 02:53)
./original: Mach-O executable i386