- MinGW 是让Windows 用户可以用上GNU 工具,比如GCC。
- Cygwin 提供完整的类Unix 环境,Windows 用户不仅可以使用GNU 工具,理论上Linux 上的程序只要用Cygwin 重新编译,就可以在Windows 上运行。
- 如果程序只用到C/C++ 标准库,可以用MinGW 或Cygwin 编译。
- 如果程序还用到了POSIX API,则只能用Cygwin 编译。
- 程序经MinGW 编译后可以直接在Windows 上面运行。
- 程序经Cygwin 编译后运行,需要依赖安装时附带的cygwin1.dll。
小结:Cypwin是运行于WIndows平台的POSIX“子系统”,提供WIndows下的类Unix环境,并提供将部分Linux应用“移植”到WIndows平台的开发环境的一套软件。Cygwin基本上就是传说中的GNU/NT系统(对照GNU/Linux,GNU/BSD,GNU/HURD)。 MinGW是用于进行Windows应用开发的GNU工具链(开发环境),它的编译产物一般是原生Windows应用,虽然它本身不一定要运行在Windows系统下(也存在与Linux、BSD甚至Cygwin下)。
联系:均提供了部分Linux下的应用,多跑在Windows上;MinGW作为Cygwin下的软件包,可以在Cygwin上运行。