MinGW 是Minimalist GNU for Windows的缩写,提供了windows平台上极简的GUN开发环境,包含编译器gcc、g++、链接器、调试器等,用以开发windows应用程序。MinGW开发的程序是windows本地程序,不依赖额外的运行时库。
MSYS的全称叫Minimal SYStem,是MinGW的一个子系统,是一套运行在Windows上的bash,也就是运行在Win上的Linux Terminal,可以代替cmd来使用。对一些GNU的开源软件,MSYS可能是必需的,因为它们通常需要./configure然后make才能运行。我们将MSYS和MinGW配合使用就可以打造出一个Win下的GNU命令行终端和编译系统。
cygwin是一个在windows上编译、运行linux程序的工具。与MinGW不同cygwin则是模拟linux运行环境。使linux下开发的程序可以不做修改或者做极少的修改,就能在windows下运行,但是需要cygwin运行时库的支持。
Git Bash shell是git提供的一个终端程序(Terminal),它只是一个shell程序,不包含其他工具。也可以搭配MinGW来使用。