2010-07-31 7 views
23

Ich muss wissen, ob ich libjpeg für 32 oder 64-Bit-Architektur kompiliert, aber nicht wissen, wie Sie herausfinden, gibt es einen Befehl, den ich überprüfen lassen?Wie kann ich auf OS X herausfinden, für welche Architektur eine gemeinsame Lib kompiliert wurde?

+2

mögliches Duplikat [Ermitteln, ob eine ausführbare Datei (oder Bibliothek) beträgt 32 -OR 64 Bits (auf OSX)] (http://stackoverflow.com/questions/1941825/determine-if-an-executable -oder-Bibliothek-ist-32-oder-64-Bit-on-osx) – outis

Antwort

29

geben Sie einfach file libjpeg.dylib und Sie werden eine Ausgabe wie die folgende

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 
7

Verwenden file Befehl erhalten:

[[email protected]:Xcode/FSLogger]$ file ./original     (07-31 02:53) 
./original: Mach-O executable i386 
15

Der file Befehl gut funktionieren wird. Alternativ können Sie otool verwenden, um die Fettkopfzeilen zu drucken.

$ 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) 
Verwandte Themen