是否可以将 .NET 字节代码编译为机器语言?
Is it possible to compile .NET byte code to machine language?
能否将 .NET 字节码直接编译成机器码?
我想这样做是为了提高执行速度。我说的是只编译 CLR 字节码,而不是直接为 C# 或其他东西编译源代码。因此,我可以先将任何 .NET 语言编译为 CLR 字节码,然后在完成所有测试和原型设计之后,再将其编译为机器代码。
是的,这似乎是可能的(我自己从未尝试过),请参阅 C# Native Compiler 项目,它旨在使用 C 将 MSIL 编译为本机,这就是它的工作原理(如该页面所述)。
using System;
public class HelloWorld
{
public static void Main(string[] args)
{
Console.WriteLine("Hello World");
}
}
假设你保存为helloworld.cs
,使用下面的命令编译成native。 (需要安装 MinGW32)
Il2c.exe /exe helloworld.cs /corelib:CoreLib.dll
这应该会创建一个 helloworld.exe 原生文件。
还有一个示例项目使用 C# 本机编译 OpenGL 应用程序,请在此处查看 - Babylon 3D - C#/native port。
能否将 .NET 字节码直接编译成机器码?
我想这样做是为了提高执行速度。我说的是只编译 CLR 字节码,而不是直接为 C# 或其他东西编译源代码。因此,我可以先将任何 .NET 语言编译为 CLR 字节码,然后在完成所有测试和原型设计之后,再将其编译为机器代码。
是的,这似乎是可能的(我自己从未尝试过),请参阅 C# Native Compiler 项目,它旨在使用 C 将 MSIL 编译为本机,这就是它的工作原理(如该页面所述)。
using System;
public class HelloWorld
{
public static void Main(string[] args)
{
Console.WriteLine("Hello World");
}
}
假设你保存为helloworld.cs
,使用下面的命令编译成native。 (需要安装 MinGW32)
Il2c.exe /exe helloworld.cs /corelib:CoreLib.dll
这应该会创建一个 helloworld.exe 原生文件。
还有一个示例项目使用 C# 本机编译 OpenGL 应用程序,请在此处查看 - Babylon 3D - C#/native port。