以下答案截止至 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有何不同?
















