.Net类可以编译成共享库(.dll)。单声道类可以编译成linux(.so)中的共享库吗?怎么样?
答案 0 :(得分:4)
.Net .dll
文件不是真正的,即原生,共享库。默认情况下,Mono还使用与Microsoft .Net相同的汇编格式生成和使用.dll
个文件。这两个运行时都会在运行时从这种中间格式生成本机代码。
但是,可以执行Ahead-Time-Time(AOT)编译并将生成的.so
文件保存到磁盘(Microsoft .Net等效于ngen.exe
本机映像生成和缓存)。当您使用--aot
标志调用Mono时,它将以.so
库的形式保存本机代码,并在再次加载相同文件时使用它。您可能还想添加-O=all
标志以启用所有优化(默认情况下会禁用其中一些优化,因为它们的执行成本很高)。
但是,请记住,缓存的本机库可能无法用于链接到本机程序。