[Mono-list] OSX Class libraries
keith davey
mush_keithd@yahoo.co.uk
Sat, 8 Feb 2003 18:19:19 +0000 (GMT)
Cool,
Thanks for the info.
Am I right in thinking so, to call Cocoa code I will
have create a bundle, that links against the dylib.
Then I can call that from mono.
I guess I will try to write a small bunble and run
code against it to see.
Keith
--- Benjamin Reed <ranger@befunk.com> wrote: > On
Saturday, February 8, 2003, at 11:45 AM, keith
> davey wrote:
>
> > I've been testing this and seem to have it a
> problem.
> > OSX has dynlib files, and I assume these are the
> same
> > as
> > .so files. However when I run a program which
> tries to
> > load a dynlib I get this:
> >
> > ** (invoke.exe:507): WARNING **: Failed to load
> > library libSystem.dylib (libSystem.dylib):
> > libSystem.dylib is not a loadable module
> > got wrong token: 0x00000001
> >
> > ** ERROR **: file loader.c: line 491
> > (mono_get_method): assertion failed: (table ==
> > MONO_TABLE_MEMBERREF)
> > aborting...
> > Abort
> >
> > Anyone know anything about dynLib files? I guess
> if we
> > have a problem I could write a C so, that wraps
> the
> > dynlib file and then call that from mono.
>
> Libraries on MacOSX are not like most elf systems...
> MacOSX
> differentiates between shared libraries and
> dynamically loadable
> modules (plugin). It looks like it's trying to load
> libSystem.dylib as
> a bundle (loadable module), but it's a shared
> library. That is bad. =)
>
> MacOSX's dynamic loader is described in detail in
>
http://developer.apple.com/techpubs/macosx/DeveloperTools/MachORuntime/
>
> MachORuntime.pdf
>
> The short version is:
>
> Dylibs are shared libraries. They are linked to
> another library or a
> binary at build time, and can be linked against, but
> cannot be
> dynamically loaded without some tricks (dlcompat, a
> dlopen/dlclose
> emulation library for macosx does this). Even with
> tricks they can't
> be dlclosed though.
>
> Bundles are loadable modules (ie, plugins), and can
> be dlopened and
> dlclosed (and the macosx equivalents, using the
> native dyld loader).
> They cannot be linked against, though.
>
> From what I understand this is all just a
> side-effect of the Mach-O
> structure. On elf systems, shared libs and modules
> have the same
> structure, and can be treated as either, in Mach-O
> this is not the case.
>
__________________________________________________
Do You Yahoo!?
Everything you'll ever need on one web page
from News and Sport to Email and Music Charts
http://uk.my.yahoo.com