На OS X как узнать, для какой архитектуры скомпилирована разделяемая библиотека? - PullRequest
26 голосов
/ 31 июля 2010

Мне нужно знать, скомпилировал ли я libjpeg для 32- или 64-битной архитектуры, но не знаю, как узнать, есть ли команда, которая позволит мне проверить?

Ответы [ 3 ]

33 голосов
/ 31 июля 2010

просто наберите 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
16 голосов
/ 01 августа 2010

Команда 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)
7 голосов
/ 31 июля 2010

Используйте команду file:

[mqudsi@iqudsi:Xcode/FSLogger]$ file ./original                   (07-31 02:53)
./original: Mach-O executable i386
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...