Подтвердить что ты не робот

В OS X, как мне узнать, для какой архитектуры скомпилирована общая библиотека?

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

4b9b3361

Ответ 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