Mono Class as shared library?
.Net class can be compile开发者_StackOverflow社区d into a shared library (.dll). Can a mono class be compiled into a shared library in linux (.so)? how?
.Net .dll
files are not real, i.e. native, shared libraries. By default, Mono also produces and consumes .dll
files, using the same assembly format as Microsoft .Net. Both runtimes generate native code from this intermediate format during runtime.
However, it is possible to perform Ahead-Of-Time (AOT) compilation and save the resulting .so
file to disk (Microsoft .Net equivalent of this is the ngen.exe
native image generation and cache). When you invoke Mono with the --aot
flag, it will save the native code in form of a .so
library and use it whenever the same file is loaded again. You probably also want to add the -O=all
flag to enable all optimizations (some of them are disabled by default because they are costly to perform).
However, please bear in mind that the cached native library probably won't be usable for linking into native programs.
精彩评论