gpt4 book ai didi

mono - 为什么有四个 Mono C# 编译器?

转载 作者:行者123 更新时间:2023-12-03 00:06:40 33 4
gpt4 key购买 nike

This page解释了四种不同的 mono 编译器 - mcs/gmcs/smcs/dmcs。

对我来说,拥有四个 C# 编译器有点奇怪。通常,新版本的编译器会保持向后兼容性。

我认为这是因为运行时支持问题,但 Microsoft 的 C# 有一个支持所有运行时版本的 csc.exe。

最佳答案

这是因为 Mono 的编译器是用 C# 编写的,并使用 System.Reflection,这意味着它只能从运行它的运行时访问 mscorlib。因此,例如,smcs 不仅仅针对 2.1,它实际上使用 2.1 corlib 等。

有一段时间计划让 *mcs 使用 Mono.Cecil 或 Ikvm.Reflection 而不是 System.Reflection,这意味着可能会有一个带有参数的 mcs 编译器来针对不同的运行时。

微软的编译器没有这个限制,因为它不使用.NET Reflection(它是用 native 代码编写的)。

关于mono - 为什么有四个 Mono C# 编译器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3882590/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com