Cygwin
Cygwin的目的是提供运行于Windows平台的类Unix环境(以GNU工具为代表)
为了达到这个目的,Cygwin提供了一套抽象层ddl,用于将部分Posix(POSIX标准定义了UNIX操作系统应该为应用程序提供的接口标准)调用转换成Windows的API调用,实现的相关功能。这里面最基本的模拟层就是那个cygwin1.ddl。
MinGW
MinGW是用于进行Windows应用开发的GNU工具链(开发环境),它的编译产物一般是原生Windows用用,虽然它本身不一定非要运行在Windows系统下(MinGW工具链也存在于Linux/BSD甚至Cygwin下)。
区别
Cygwin是模拟POSIX系统,源码移植Linux应用到Windows下;
MinGW是用于开发Windows应用的开发环境。
使用
把bin目录添加至环境变量,然后可以查看bin下有什么东西可以用,比如要使用make命令,但bin目录下不叫make.exe,而叫mingw32-make.exe。
因此,用法是
mingw32-make <makefile>
而不是
make <makefile>