Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p><strong>As a simplification, it's like this:</strong></p> <ul> <li><p>Compile something in Cygwin and you are compiling it <em>for Cygwin</em>.</p></li> <li><p>Compile something in MinGW and you are compiling it <em>for Windows</em>.</p></li> </ul> <p><strong>About Cygwin</strong></p> <p>The purpose of Cygwin is to make porting *nix-based applications to Windows much easier, by emulating many of the small details that Unix-based operating systems provide, and are documented by the <a href="https://en.wikipedia.org/wiki/POSIX" rel="noreferrer">POSIX</a> standards. If your application assumes that it can use Unix feature such as pipes, Unix-style file and directory access, and so forth, then you can compile it in Cygwin and Cygwin itself will act as a <em>compatibility layer</em> around your application, so that many of these Unix-specific paradigms can continue to be used with little or no modification to your application.</p> <p>If you want to compile something for Cygwin and distribute that resulting application, you must also distribute the Cygwin run-time environment (provided by <code>cygwin1.dll</code>) along with it, <em>and this has implications for what types of software license you may use</em>.</p> <p><strong>About MinGW</strong></p> <p>MinGW is a Windows port of the GNU compiler tools, such as GCC, Make, Bash, and so on. It does not attempt to emulate or provide comprehensive compatibility with Unix, but instead it provides the minimum necessary environment to use GCC (the GNU compiler) and a small number of other tools <em>on Windows</em>. It does not have a Unix emulation layer like Cygwin, but as a result your application needs to specifically be programmed to be able to run in Windows, which may mean significant alteration if it was created to rely on being run in a standard Unix environment and uses Unix-specific features such as those mentioned earlier. By default, code compiled in MinGW's GCC will compile to a native Windows X86 target, including .exe and .dll files, though you could also cross-compile with the right settings. MinGW is an open-source alternative to <a href="https://en.wikipedia.org/wiki/Visual_C%2B%2B" rel="noreferrer">Microsoft Visual C++</a> compiler and its associated linking/make tools.</p> <p>Considerably sophisticated cross-platform frameworks exist which make the task of porting applications to various operating systems easily - for example the <a href="https://en.wikipedia.org/wiki/Qt_(framework)" rel="noreferrer">Qt framework</a> is a popular framework for cross-platform applications. If you use such a framework from the start, you can not only reduce your headaches when it comes time to port to another platform but you can use the same graphical widgets - windows, menus and controls - across all platforms if you're writing a GUI app.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload