linux下能生成exe吗

Linux 下是可以生成 Windows 可执行文件(.exe)的,可以通过以下方法来实现。在这里,我们主要介绍两种方法:使用交叉编译器和使用 Mono 项目编译 C# 代码。

### 方法一:交叉编译器

交叉编译器是一种特殊的编译器,该编译器能够在一个操作系统和指定平台(例如 Linux)上生成另一个操作系统和指定平台(例如 Windows)的可执行程序。常见的交叉编译器有 MinGW-w64 和 MXE(M cross environment)。

#### MinGW-w64

MinGW-w64 是一个在 Linux 上用来交叉编译 Windows 可执行文件的开源项目。这是一个原生 GCC 编译器,可以用来生成 32 位和64 位 Windows 可执行程序。 安装和使用流程如下:

1. 在 Linux 系统中安装 MinGW-w64,安装命令可能因发行版而异。

在 Ubuntu/Debian,你可以使用如下命令:

```

sudo apt-get install mingw-w64

```

在 Fedora,你可以使用如下命令:

```

sudo dnf install mingw64-gcc-c++

```

2. 写一个简单的 C 代码示例作为测试。例如,创建一个名为 hello.c 的文件,内容如下:

```c

#include

int main() {

printf("Hello, World from Windows!\n");

return 0;

}

```

3. 使用 MinGW-w64 交叉编译器编译该示例代码。指定 32 位或 64 位输出:

32 位:

```

i686-w64-mingw32-gcc hello.c -o hello.exe

```

64 位:

```

x86_64-w64-mingw32-gcc hello.c -o hello.exe

```

4. 这将会生成一个名为 hello.exe 的 Windows 可执行文件。您可以将其发送到 Windows 系统上,并直接运行。

#### MXE(M cross environment)

MXE 是另一个在 Linux 上用来交叉编译 Windows 可执行文件的工具。相较于 MinGW-w64,MXE 更加强大,它可以用于构建复杂的项目。MXE 包括了许多第三方库,可以在 MXE 环境中轻松地编译和链接这些库。

MXE 的使用方法可以参考官方文档 https://mxe.cc/。您需要首先从源码构建 MXE,然后使用类似的步骤编译 C/C++ 程序。

### 方法二:使用 Mono 项目编译 C# 代码

Mono 是一个开源的 .NET 框架实现,它允许你在 Linux 上编译和运行 C# 程序。通过 Mono,你也可以在 Linux 上生成 Windows 的 C# 可执行文件。

1. 在 Linux 系统中安装 Mono,安装命令可能因发行版而异。

在 Ubuntu/Debian,你可以使用如下命令:

```

sudo apt-get install mono-devel

```

在 Fedora,你可以使用如下命令:

```

sudo dnf install mono-devel

```

2. 写一个简单的 C# 代码示例作为测试。例如,创建一个名为 hello.cs 的文件,内容如下:

```c#

using System;

class HelloWorld {

public static void Main() {

Console.WriteLine("Hello, World from Windows!");

}

}

```

3. 使用 Mono 编译器编译 C# 代码:

```

mcs hello.cs -out:hello.exe

```

4. 这将会生成一个名为 hello.exe 的 Windows 可执行文件。您可以将其发送到 Windows 系统上,并使用 .NET Framework 运行它。

以上就是在 Linux 下生成 Windows 可执行文件的两种方法,希望对你有所帮助。