Mono Class作为共享库?

时间:2011-04-13 10:40:42

标签: linux mono

.Net类可以编译成共享库(.dll)。单声道类可以编译成linux(.so)中的共享库吗?怎么样?

1 个答案:

答案 0 :(得分:4)

.Net .dll文件不是真正的,即原生,共享库。默认情况下,Mono还使用与Microsoft .Net相同的汇编格式生成和使用.dll个文件。这两个运行时都会在运行时从这种中间格式生成本机代码。

但是,可以执行Ahead-Time-Time(AOT)编译并将生成的.so文件保存到磁盘(Microsoft .Net等效于ngen.exe本机映像生成和缓存)。当您使用--aot标志调用Mono时,它将以.so库的形式保存本机代码,并在再次加载相同文件时使用它。您可能还想添加-O=all标志以启用所有优化(默认情况下会禁用其中一些优化,因为它们的执行成本很高)。

但是,请记住,缓存的本机库可能无法用于链接到本机程序。