IL2CPP

Definition

IL2CPP reads the IL in your managed assemblies at build time, writes equivalent C++, and hands that to the platform compiler. The player ships a native library such as GameAssembly.dll or libil2cpp.so instead of Assembly-CSharp.dll. Type and method names, string literals, and field layouts are kept in a separate file, global-metadata.dat, because the runtime still needs them. Some platforms, such as iOS and WebGL, only allow IL2CPP.

Relevance

IL2CPP is how Unity ships C# on platforms that do not allow a just-in-time compiler, and the resulting player is usually faster than Mono. The build produces a native library plus global-metadata.dat, which the runtime uses for type names, strings, and reflection.

Example

You switch the scripting backend to IL2CPP and rebuild. The player contains GameAssembly.dll, or libil2cpp.so on Android, instead of Assembly-CSharp.dll, plus global-metadata.dat. The game runs the native code, and the runtime reads names and strings from that metadata file.

Connected

Synonyms

Intermediate Language To C++