[Mono-dev] How to create a dynamic library for Linux?
robertj at gmx.net
Sat Dec 1 11:55:39 EST 2007
Laurent Le Brun wrote:
> I'd like to create a dynamic library (for Linux), from a .NET source
> file. I've searched in the web for this, but didn't find anything. I
> hope this is the right list for this question.
There is a reason for the lack of informations about
using a .NET assembly as a SO: there is no way to do it.
> So, I'd like to get a .so library, that I can call from C/C++ code.
> I compiled my .NET files into a .dll file. Then, I compiled it to
> native code (using mono --aot). But, the generated .so file doesn't
> export my library functions (I checked using nm). I've seen symbols
> like "method_info" or "class_info". Could they be useful for my need?
> Is it possible to do this? Any advice or link is welcome.
> Please note the main application is written in C++, but I don't want
> to run it with mono.
You have 3 choices:
1. Embed the mono runtime. See
2. mkbundle/mkbundle2 with the --nomain option and manual
compilation & linking. See "man mkbundle".
3. Convert your C++ application to a SO and DllImport it
from a managed (C#) main application stub. In the
stub you can expose the methods using delegates that
you pass to the SO via DllImports.
More information about the Mono-devel-list