【问题标题】:On OS X, how do I find out what architecture a shared lib is compiled for?在 OS X 上,我如何找出共享库是为什么架构编译的?
【发布时间】:2010-07-31 06:48:30
【问题描述】:

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

【问题讨论】:

标签: macos unix architecture


【解决方案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 命令:

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

      【讨论】:

        猜你喜欢
        • 2014-03-21
        • 2021-05-20
        • 2015-01-09
        • 2012-04-08
        • 2010-11-27
        • 1970-01-01
        • 2023-03-22
        • 2012-06-22
        • 2011-03-21
        相关资源
        最近更新 更多