单声道编译C#和原生?

Duc*_*tal 11 mono xamarin.ios

我是Mono的新手,刚刚开始.单声道程序是否从C#编译为本机代码才能在多个OS上运行?

而且,我在MonoTouch上看到了一个截屏视频,告诉我单声道(特别是)将所有内容编译为Native for C#以便能够在Iphone上运行.

我很困惑.

Jim*_*mmy 21

默认情况下,Mono编译为中间字节码,然后在虚拟机上运行.此字节代码是可移植的,但不是本机代码.

Mono确实有一个AOT编译器,当字节码不是一个选项时,它将生成本机图像.


Ben*_*igt 7

几乎所有.NET平台,微软(包括桌面,紧凑框架和微框架)和第三方(如单声道)都首先将所有内容编译为可移植的公共中间语言,然后在执行期间即时编译本机代码.有些没有JIT,只是直接解释IL.

本机代码显然是不可移植的.

这有帮助吗?


小智 7

查看'mkbundle'将单声道运行时编译到您的可执行文件中.例如.mkbundle --static --deps Hello.exe -o你好


zne*_*eak 5

Mono本身将编译为.NET CLR字节码,允许它在任何支持.NET或Mono的平台上执行.这些可执行文件不是由本机机器指令组成的; 它们在执行它的系统上由运行时即时编译成本机代码.简而言之,Mono二进制文件是可移植的.

从CocoaTouch开始,将其编译为本机代码是必要的,因为Apple不允许在iPhone上使用Mono等系统.这是一个例外情况; 正常的单声道程序不会这样做.