- MSYS2 提供了最新的 GCC,mingw-w64,CPython,CMake,Meson 等原生构建。
clang 和 gcc 是两个不同的 C/C++ 编译器,而 mingw-w64 是一个 Windows 上的编译和运行时环境。注意,mingw-w64 本身并不是一个编译器,而是一组库、头文件和实用工具。
-gcc 需要 mingw-w64 环境才能在 Windows 上编译程序,加上最初(现已过时)的 mingw 项目就是专为 gcc 设计的,因此通常用 mingw64 代指 64 位的 gcc 和 mingw-w64 环境。
mingw64、ucrt64、clang64 都是 Windows 原生程序(不依赖 cygwin.dll),不过 mingw64 是很早就有的,后两者是最近才新加的,所以只是选一个用的话就 mingw64 就没问题。现在 msys2 官方推荐优先选择 ucrt64,现在 ucrt64 环境已经非常稳定了,而且对 UTF-8 语言环境的支持更好。
简而言之,这三者的区别是:mingw64 与 ucrt64 都是用 gcc 编译器编译的 Windows 64 位程序,只不过它们链接到的 crt(C runtime)不同, mingw64 是链接到了 msvcrt ,而 ucrt64 则是链接到了 Windows 上新的 ucrt 上。而 clang64 很好理解,就是用 clang 而非 gcc 来编译各种库。另外它也是链接到了 ucrt 而非 msvcrt。
三者是共同点是,它们都需要 mingw-w64 环境来进行编译。