CYGWIN/GCC and MinGW are all GCC's compilation environments under Windows, but what is the difference between these two compilers in real-world work.
CYGWIN/GCC can be fully and in the GCC under Linux equals, this can be seen from the division of the Boost library, Cygwin under the GCC and the Linux under the GCC fully use the same toolsets.
So it's perfectly possible to update the GCC version in sync with Linux without worrying about the problem, and what CYGWIN/GCC does (without Win32) can be used seamlessly under Linux without any problems. is a good choice for developing Linux programs under Windows. However, the program compiled under CYGWIN/GCC must rely on cygwin1.dll for Windows execution, and it is a bit slow, and if you do not want to rely on this thing, you must add-mno-cygwin to the GCC compilation options. In fact, the GCC compiler will automatically choose to install CYGWIN/GCC when installing the MinGW, this mingw is a cross-compilation of GCC.
For MinGW as an implementation of GCC on windows, unlike Cygwin's GCC running on an emulated Linux, a significant portion of the Linux tools are not available.
Based on the above analysis, if you are developing Linux programs in Windows, Cygwin is a good choice. If you develop a program that doesn't mind having a cygwin1.dll, you can also choose Cygwin. If you want to develop a program under Windows and must use GCC, MinGW is a good choice.
Http://www.cnblogs.com/guoxiaoqian/p/3984944.html
The similarities and differences between GCC and mingw (what you can do in CYGWIN/GCC seamlessly with Linux without any problems is a good choice for developing Linux programs under Windows)