PluginLinkingOnMac
This technote contains some notes on linker settings for Mac.
! Mach-O Plugins - Mach-O file type.
Your Mach-O plugin type can be either a dylib or a bundle. Please note that we are referring to the Mach-O header type of the ".xpl" file, not the packaging! To tell your type, use otool -h <plugin> on your plugin - a header file type of 6 is a dylib, 8 is a bundle.
If you make a bundle, your plugin will work on OS X 10.3 and 10.4 with flat or two-level namespace.
If you make a dylib, your plugin will work on OS X 10.3 and 10.4 with a two-level namespace, but only on 10.4 with a flat namespace!
Two-level namespace is picked by not using -flat_namespace. If you use a two level namespace you must use -undefined dynamic_lookup. Otherwise you can use -undefined dynamic_lookup or -undefined warning.
Bundle or dylib is selected using -bundle or -dynamiclib.
! Mach-O Plugins - Bundling
You can bundle a Mach-O plugin although we do not recommend it. Basically if your plugin looks like a bundle to CFBundle, the SDK will load it.
(This wrapping may be dropped for 2.0 APIs, btu will continue to be supported for 1.0 APIs - this is under review.)
! CFM Plugins
CFM plugins are necessary to support older versions of X-Plane on OS 9. If you do not intend to support X-Plane 6 or 7 we do not recommend CFM.
(This wrapping may be dropped for 2.0 APIs, btu will continue to be supported for 1.0 APIs - this is under review, but dropping 2.0 CFM support is very likely.)