MSYS2

image

1- MSYS2

MSYS2 是一个在 Windows 上模拟 Linux 环境的开发工具,适合初学者使用。

2- 图表说明

2.1- 安装流程图

graph TD;
    A[下载 MSYS2 安装包] --> B[运行安装程序];
    B --> C[初始化 MSYS2];
    C --> D[更新软件包数据库和基础包];
    D --> E[安装开发工具];
    E --> F[设置环境变量];
    F --> G[编写和编译 C/C++ 程序];
    G --> H[使用 pacman 安装其他软件包];

2.2- 代码注释示例

#include <stdio.h>

int main() {
    printf("Hello, World!\n");  // 输出 "Hello, World!"
    return 0;  // 返回 0 表示程序成功执行
}

3- 安装 MSYS2

3.1- 下载 MSYS2 安装包:

3.1.1- winget安装

winget install --id MSYS2.MSYS2

3.2- 运行安装程序:

  • 双击下载的安装包,按照提示进行安装。建议安装路径为 C:\msys64,避免使用带有空格或特殊字符的路径。

4- MSYS2 环境对比

环境 运行时 编译器 架构 主要用途
MSYS2 UCRT64 微软 UCRT GCC x86_64 (64 位) 通用环境,推荐使用,兼容性最好
MSYS2 MSYS MSYS2 自身 GCC i686 (32 位) 构建 MSYS2 本身和一些 POSIX 工具
MSYS2 MINGW64 MinGW-w64 GCC x86_64 (64 位) 构建原生 Windows 程序 (64 位)
MSYS2 MINGW32 MinGW-w64 GCC i686 (32 位) 构建原生 Windows 程序 (32 位)
MSYS2 CLANG64 Clang x86_64 (64 位) 使用 Clang 构建原生 Windows 程序 (64 位)
MSYS2 CLANGARM64 Clang AArch64 (ARM64) 使用 Clang 构建原生 Windows 程序 (ARM64)

4.1- 说明:

  • 运行时: 程序运行时所依赖的库和环境。
  • 编译器: 用于将代码编译成可执行文件的工具。
  • 架构: 程序运行的目标处理器架构。
  • 主要用途: 该环境主要用于什么场景.

4.2- 简单来说:

UCRT64: 通用环境,推荐使用。
MSYS: MSYS2 自身环境。
MINGW64/MINGW32: 构建原生 Windows 程序,分别针对 64 位和 32 位。
CLANG64/CLANGARM64: 使用 Clang 编译器构建原生 Windows 程序,分别针对 64 位和 ARM64。

4.3- 总结:

UCRT64 是一个通用环境,主要用于运行 POSIX 工具和程序,它本身不包含编译器和调试器。
如果你需要使用 GCC 和 GDB 等 MinGW 工具,需要启动 MinGW 环境,或者手动将 MinGW 的 bin 目录添加到 UCRT64 的 PATH 中。

4.4- 初始化 MSYS2:

  • 安装完成后,打开 MSYS2 终端(MSYS2 MSYS)。

4.4.1- 运行以下命令更新软件包数据库和基础包:

pacman -Syu  # 更新软件包数据库和基础包

4.4.2- 如果提示重新启动 MSYS2 终端,关闭终端并重新打开,然后继续运行:

pacman -Su  # 完成更新

5- 配置和使用 MSYS2

5.1- 安装开发工具:

  • 打开 MSYS2 MinGW 终端(MSYS2 MinGW 64-bit 或 MSYS2 MinGW 32-bit)。

5.1.1- 安装 GCC 编译器:

pacman -S mingw-w64-x86_64-gcc  # 安装 64-bit GCC 编译器
pacman -S mingw-w64-i686-gcc    # 安装 32-bit GCC 编译器

5.1.2- 安装其他常用工具,如 GDB 调试器:

pacman -S mingw-w64-x86_64-gdb  # 安装 64-bit GDB 调试器
pacman -S mingw-w64-i686-gdb    # 安装 32-bit GDB 调试器

5.1.3- 安装完成后,可以通过以下命令验证安装:

gcc --version  # 检查 GCC 版本
gdb --version  # 检查 GDB 版本

5.2- 设置环境变量:

  • 为了在命令行中全局访问已安装的工具,需要将 MSYS2 的二进制目录添加到系统的 PATH 环境变量中。
  • 找到 mingw64 或 mingw32 的 bin 目录路径(例如 C:\msys64\mingw64\bin),并将其添加到系统环境变量 PATH 中:
    • 右键点击“此电脑”或“我的电脑”,选择“属性”->“高级系统设置”->“环境变量”。
    • 在“系统变量”区域找到名为“Path”的变量,双击编辑。
    • 在变量值的末尾添加 ;C:\msys64\mingw64\bin(注意分号分隔符)。
    • 点击“确定”保存更改。

6- 使用 MSYS2 进行开发

6.1- 编写和编译 C/C++ 程序:

  • 打开 MSYS2 MinGW 终端,使用文本编辑器(如 nano)编写一个简单的 C 程序:

nano hello.c # 使用 nano 编辑器创建 hello.c 文件
```

  • 在 nano 编辑器中输入以下代码:
#include <stdio.h>

int main() {
    printf("Hello, World!\n");  // 输出 "Hello, World!"
    return 0;  // 返回 0 表示程序成功执行
}
    ```
  - 保存并退出 nano(按 `Ctrl + X`,然后按 `Y` 确认保存,最后按 `Enter`)。
  - 使用 GCC 编译该程序:
    ```bash
gcc -o hello hello.c  # 编译 hello.c 生成可执行文件 hello
    ```
  - 运行编译后的程序:
    ```bash
./hello  # 运行生成的可执行文件
    ```


## 2- 使用 pacman 安装其他软件包:
  - MSYS2 提供了丰富的软件包,可以通过 pacman 安装:
```bash
pacman -S git  # 安装 Git
pacman -S zsh  # 安装 Zsh
  • 使用 pacman -Ss package_name 搜索软件包,pacman -Si package_name 查看软件包信息。

7- 总结

通过以上步骤,你已经成功安装并配置了 MSYS2,并学会了如何使用它进行简单的开发工作。MSYS2 提供了一个强大的开发环境,结合了 Windows 和 Linux 的优点,适合在 Windows 上进行开源软件的开发和编译。