以下答案截止至 2021/06/01:

MinGW: 编译目标仅兼容 32 位应用程序,最新的官方二进制版本为 GCC 9.2.0。(OSDN)

MinGW-w64: 衍生自 MinGW 的项目,编译目标兼容 32 位应用程序与64 位应用程序,最新的官方二进制版本为 GCC 8.1.0。(SourceForge)

TDM-GCC: 衍生自 MinGW 和 MinGW-w64 的项目,分为 32 位与 64 位两个版本,32 位版本的编译目标仅兼容 32 位应用程序,64位版本的编译目标兼容 32 位应用程序与 64 位应用程序,最新的官方二进制版本为 GCC 10.3.0。

以上三个 GCC 编译器的 Windows 发行版均兼容 POSIX 线程标准 ("pthread.h")。

个人推荐优先选择 TDM-GCC 作为首选 GCC C / C++ 编译器。


1.        值得一提的是,MinGW-w64 还有基于 LLVM 构建的 Clang 编译器:LLVM-MinGW

        clang是LLVM编译器工具集的一个用于编译C、C++、Objective-C的前端。LLVM项目的目标是提供一个GNU编译器套装(gcc)的替代品,由苹果公司的赞助开发,其源代码授权采用的是类BSD的伊利诺伊大学厄巴纳-香槟分校开源码许可。

clang编译器简介 - 知乎 (zhihu.com)

        如果想使用 Clang 编译器,却不想安装 MSVC 工具链,可以使用 MinGW-w64 的 Clang 编译器发行版。二者主要区别如下:

        MSVC 工具链中的 Clang 编译器的 ABI 兼容 MSVC (clang -target i686-pc-windows-msvc),采用 Win32 线程模型。

        MinGW-w64 的 Clang 编译器发行版的 ABI 兼容 GCC (clang -target i686-w64-windows-gnu),采用 POSIX 线程模型。

        tdmgcc,mingw是一个编译器,附带自己的运行库来实现CLib。

2.        cygwin是一个POSIX兼容层+一堆移植的程序,在Windows上模拟Linux的API,类似于WINE。

Cygwin是一个在windows平台上运行的类UNIX模拟环境,是cygnus solutions公司开发的自由软件。

跨平台

Cygwin系列(一):Cygwin是什么 - 知乎 (zhihu.com)

Cygwin工具的简单使用 - 走看看 (zoukankan.com)

3.        msys 是mingw加上一些工具让你能够执行make命令。比如cp,awk之类的。

        MSYS即Minimal GNU(POSIX)system on Windows,是一个小型的GNU环境,包括基本的bash,make等等。是Windows下最优秀的GNU环境。

        msys2 = mingw-w64 + pacman 。工具部分用cygwin移植。

        MSYS2 (Minimal SYStem 2) 是一个MSYS的独立改写版本,主要用于 shell 命令行开发环境。同时它也是一个在Cygwin (POSIX 兼容性层) 和 MinGW-w64(从"MinGW-生成")基础上产生的,追求更好的互操作性的 Windows 软件。

MSYS2,一个神级的Linux模拟器 

使用Clang 编译器

MSYS2与Cygwin有何不同?