代码生成之旅

代码生成之旅

托管代码如何映射到C++代码

在托管代码中的每个类,il2cpp.exe都会相应的生成一个有着C++定义的头文件和另外一个进行函数声明的头文件。举个例子,让我们看看UnityEngine.Vector3是如何被转换的。这个类的头文件名字叫UnityEngine_UnityEngine_Vector3.h。头文件名的组成:一开始是程序集名称(这里是UnityEngine),然后跟着命名空间(还是UnityEngine),最后是这个类型的名字(Vector3)。头文件的内容如下:

  

深入了解IL2CPP

深入了解IL2CPP

什么是IL2CPP

  • 预先编译(AOT) An ahead-of-time (AOT) compiler
  • 支持虚拟机的运行时库 A runtime library to support the virtual machine

AOT编译器将由 .NET 输出的中间语言(IL)代码生成为C++代码。 运行时库提供服务和抽象,例如垃圾收集器、对线程和文件的独立平台访问以及内部调用的实现(直接修改托管数据结构的本机代码)。

  

:D 一言句子获取中...