C# Mono 编译器不工作

C# Mono Compiler doesn't work

我尝试使用以下命令安装单声道编译器:

pacman -S mono

安装成功。

但是当我尝试编译此代码(用于测试目的)时:

using System;

public class Hello2
{
   public static void Main()
   {
      Console.WriteLine("Hello World!");
   }
}

通过使用以下命令:

mono myfile.cs

换一种方式,使用这个命令:

mcs myfile.cs

对于这两种方法,我在终端中得到一个空输出。

我是不是做错了什么?为什么不起作用?

注意:我正在使用 ArchLinux

您需要按顺序执行以下两个步骤:

  1. 将您的源代码编译成可执行文件

    mcs -o myfile.exe myfile.cs
    
  2. 运行 你编译的可执行文件

    mono myfile.exe # ./myfile.exe should also work
    

mcs

mcs是一个编译器,它将源代码翻译成中间代码运行时间环境mono 可以 运行。编译器会在您编译它的目录中生成一个文件 file.exe。接下来,您可以 运行 通过使用 ./file.exe:

调用文件
$ mv cstest.cs file.cs
$ mcs file.cs
$ ./file.exe
Hello World!
$

它只会在出现此类错误时打印警告、错误等。请注意,这是一个编译器,而不是 运行 时间环境。例如,如果您将文件更改为:

using System;

public class Hello2 {
   public static int Main() {
      Console.WriteLine("Hello World!");
   }
}

mcs会报错:

$ mcs file.cs
file.cs(4,22): error CS0161: `Hello2.Main()': not all code paths return a value
Compilation failed: 1 error(s), 0 warnings

mono

mono 是 运行 时间环境(以及提前 (AOT) 编译器,但现在不相关)。您可以使用 mono 到 运行 mcs:

的乘积
$ mono file.exe
Hello World!