MinGW aims to simply be a port of GNU’s development tools for Windows.
Even just linking your software with it, but distributing the dll separately, can still impose license restrictions on your code. You may distribute this with your software, but your software will have to comply with its open source license. When you distribute your software, the recipient will need to run it along with the Cygwin run-time environment (provided by the file cygwin1.dll ). If you have existing source code that uses these interfaces, you may be able to compile it for use with Cygwin after making very few or even no changes, greatly simplifying the process of porting simple IO based Unix code for use on Windows. But what is the difference between them ?Īnother question is whether I will be able to run the binary on a system without Cygwin/MinGW ?Ĭompile something in Cygwin and you are compiling it for Cygwin.Ĭompile something in MinGW and you are compiling it for Windows.Ĭygwin is a compatibility layer that makes it easy to port simple Unix-based applications to Windows, by emulating many of the basic interfaces that Unix-based operating systems provide, such as pipes, Unix-style file and directory access, and so on as documented by the POSIX standards.
I want to make my C++ project cross platform, and I’m considering using Cygwin/MinGW.