一直对Mono是如何实现跨平台的比较迷惑?再用Mono生成对应平台的应用时,他生成的是对应平台的机器码文件呢,还是对应平台的“中间语言”文件呢?
首先Mono自己应该有一个所谓的运行时或虚拟机,以便生成对应平台的应用,问题是如果Mono生成一.net平台或是java的应用,是否还需要.net或JVM的支持(说明生成的是对应平台的“中间语言”文件),还是直接就生成机器码了?本人菜鸟一枚,欢迎大家吐槽。Mono

解决方案 »

  1.   

    所有的.net生成的assembly都是IL的,而不是机器码的,否则x86和x64都跨不了。java也是一样。运行时都需要runtime的支持的。
      

  2.   

    那么在Mono平台下用C#写的android或是ios程序是怎么生成的呢?Mono把.net中间文件转为了dalvik的中间文件了吗?
      

  3.   

    for IOS的不是一个产品,叫
    MonoTouch for iOS这个应该是编译成Native Code的。其实我们在windows上运行.net程序是,也是.net Runtime将IL(中间码)编译成Native Code再执行。只不过是Just-in-time(即时)的我猜,MonoTouch for iOS可能就是将.net Runtime编译成NativeCode这一个步,放到了build这一步,而不是在运行时。