问题描述
|
.Net类可以编译到共享库(.dll)中。可以将Mono类编译成Linux(.so)中的共享库吗?怎么样?
解决方法
.Net
.dll
文件不是真实的,即本机共享库。默认情况下,Mono还使用与Microsoft .Net相同的汇编格式来生成和使用“ 0”个文件。两个运行时在运行时都从该中间格式生成本机代码。
但是,可以执行提前(AOT)编译并将生成的“ 2”文件保存到磁盘(相当于Microsoft“ .Net”的是“ 3”本机映像生成和缓存)。当使用--aot
标志调用Mono时,它将以.so
库的形式保存本机代码,并在再次加载相同文件时使用它。您可能还希望添加“ 6”标志以启用所有优化(由于执行成本高昂,默认情况下其中一些处于禁用状态)。
但是,请记住,缓存的本机库可能无法用于链接到本机程序。