I have a third party OS X dylib that I'm using in my app and don't have easy access to its creator. I'd like to determine if it was linked with -flat_namespace. Is that possible? If so, how?
+2
A:
Run otool -hV
on the library. If you don't see TWOLEVEL
, then it was linked with -flat-namespace
. For example:
twolevel.dylib:
Mach header
magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
MH_MAGIC_64 X86_64 ALL 0x00 DYLIB 8 672 NOUNDEFS DYLDLINK TWOLEVEL NO_REEXPORTED_DYLIBS
versus
flat.dylib:
Mach header
magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
MH_MAGIC_64 X86_64 ALL 0x00 DYLIB 8 672 DYLDLINK NO_REEXPORTED_DYLIBS
Nicholas Riley
2010-04-02 00:53:18
Exactly what I was looking for. Thanks Nicholas!
Josh Knauer
2010-04-05 13:35:02