1 简介
MSYS2(Minimal SYStem 2)是一个用于 Windows 操作系统的轻量级类 Unix 环境。其旨在提供一个类似 Linux 的开发环境,以方便在 Windows 上运行和编译主要面向 Unix 系统的软件。MSYS2 基于 Cygwin 和 MinGW(Minimalist GNU for Windows),但提供了更现代化的包管理系统和更好的性能。
MSYS2 的主要特性和功能包括:
- 包管理系统:MSYS2使用
pacman
作为包管理器,这与 Arch Linux 使用的包管理器相同,能够让用户方便地安装、更新和删除软件包。用户可以通过命令行界面来管理软件包,这大大简化了软件的安装和维护过程。 - 类Unix的命令行工具和环境:MSYS2通过提供常用的 Unix 命令行工具(如grep、sed、awk等)和核心工具环境(如bash shell)来增强Windows平台上的开发和操作体验。
- 开发和构建软件:MSYS2还提供了一系列用于开发、构建和调试软件的工具链和库,包括GCC编译器、调试器、构建工具(如Make、Cmake)等。这使得开发人员可以在Windows平台上进行跨平台软件开发和构建。由于MSYS2提供了一个良好的开发环境,开发人员甚至可以编译出不依赖于MSYS2环境的原生Windows程序。
- 活跃的社区和更新:MSYS2 有一个活跃的社区支持,软件包和系统更新频繁。
总体而言,MSYS2提供了一种在Windows平台上使用类Unix环境的便捷方式,使开发人员和用户可以在Windows环境下更方便地进行开发、维护和操作工作。
2 运行环境
MSYS2 提供了众多运行环境,包括 clang32、clang64、clangarm64、mingw32、mingw64、msys2和ucrt64。
- msys2环境:
一个类 Unix 的 shell 环境,适合运行需要 Unix 工具的脚本和程序。
该环境通过提供且依赖于可以在Windows环境下运行的UNIX兼容性层(/usr/bin文件夹下的MSYS-2.0.dll等依赖库),以实现程序在Windows系统中跨平台的编译和运行,它对于需要在Windows操作系统下进行Unix类应用开发和系统管理的人来说非常有用。
此环境一般用于开发Unix类平台应用程序。 - ucrt64环境:
该环境提供且依赖于Windows自带的比较新的C语言库ucrt。此库win10/11自带,也是目前微软Visual Studio使用的库,未来将会替代C语言库msvcrt。
此环境一般用于开发纯正的Windows平台应用程序。
UCRT64(Universal C Runtime)是Microsoft提供的C运行时库,其提供了标准C函数库和一些基本的运行时支持。它是Windows平台上编译C/C++程序所必需的组件,包括文件I/O、内存管理、线程支持等。UCRT64是系统级别的库,用于开发和执行Windows应用程序。 - mingw64环境:
该环境提供且依赖于Windows自带的C语言库msvcrt,较为通用,但目前更推荐使用ucrt64环境。
此环境一般用于开发纯正的Windows平台应用程序。 - clang64环境:
其采用LLVM工具链而非GCC工具链,所有配套环境都是基于LLVM的(比如这个环境里的gcc.exe其实是clang.exe的重命名)。 - clangarm64环境:
可用于Android程序编译。