在OS X上,我如何找出为其编译共享库的架构?

时间:2010-07-31 06:48:31

标签: macos unix architecture

我需要知道我是否为32位或64位架构编译libjpeg,但不知道如何查找,是否有一个命令可以让我检查?

3 个答案:

答案 0 :(得分:32)

只需输入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

答案 1 :(得分:15)

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)

答案 2 :(得分:7)

使用file命令:

[mqudsi@iqudsi:Xcode/FSLogger]$ file ./original                   (07-31 02:53)
./original: Mach-O executable i386