The MinGW from http://www.mingw.org/ does only support gcc 32 bit (host and target). The independent minGW-w64 project provides support for 64 bit, and also supports a much larger part of the Windows API. The MinGW-w64 project however does not provide official binary builds: These can be grabbed either from the personal build directories of the developers (the most popular being rubenvb), or from associated but independent projects like tdm-gcc or mingw-builds or msys2.
Source: http://wiki.qt.io/MinGW-64-bit
Answer from KindDragon on Stack OverflowThe MinGW from http://www.mingw.org/ does only support gcc 32 bit (host and target). The independent minGW-w64 project provides support for 64 bit, and also supports a much larger part of the Windows API. The MinGW-w64 project however does not provide official binary builds: These can be grabbed either from the personal build directories of the developers (the most popular being rubenvb), or from associated but independent projects like tdm-gcc or mingw-builds or msys2.
Source: http://wiki.qt.io/MinGW-64-bit
As said by others MinGW-w64 is a fork of the original MinGW which supports both 32 and 64bit x86 processors. You can find the original motivation for the fork here:
https://sourceforge.net/p/mingw-w64/wiki2/History/
Regarding the differences you can find a list here:
https://sourceforge.net/p/mingw-w64/wiki2/Feature%20list/
Can some one explain the difference between MinGW and MinGW-w64 and the difference between MinGW and Cygwin?
I think mingw_w64 is 64 bit but it also fixes some issues in mingw if i rember correctly.
I have no idea what the difference is between mingw and cygwin because all the explenations are to hard for me to follow.
exe - check the platform of the installed mingw, 32bit or 64 bit - Stack Overflow
Why do MinGW binaries have such complicated names? (e.g. i686-w64-mingw32-...) - Stack Overflow
winapi - What's the difference between Mingw32 and Mingw64 include files? - Stack Overflow
c++ - What is the difference between MinGW, MinGW-w64 and MinGW-builds? - Stack Overflow
The MinGW from http://www.mingw.org/ does only support gcc 32 bit (host and target). The independent minGW-w64 project provides support for 64 bit, and also supports a much larger part of the Windows API. The MinGW-w64 project however does not provide official binary builds: These can be grabbed either from the personal build directories of the developers (the most popular being rubenvb), or from associated but independent projects like tdm-gcc or mingw-builds or msys2.
Source: http://wiki.qt.io/MinGW-64-bit
Answer from KindDragon on Stack Overflowmingw and mingw32 are for creating executables for 32-bit windows systems. mingw64 is for creating 64-bit executables. Note: this doesn't have to do with what version you are running when you do the build, but what the target system is for the executable you are creating (the system on which you will be running the newly created executable).
Regarding MinGW and MinGW32, here's a snippet from
The MinGW Wiki
"The project's name changed from mingw32 to MinGW is to prevent the implication that MinGW will only works on 32 bit systems (as 64 and higher bit machines become more common, MinGW will evolve to work with them)."
To find out what version you have, go the the associated bin directory and do:
gcc --version
I'd recommend checking out minGW-w64, from here: http://mingw-w64.sourceforge.net/
That projects goal is to "deliver runtime, headers, and libs for developing 64 bit (x64), as well as 32 bit (x86), windows applications using gcc-4.6 or newer versions."
As indicated in the comments to the currently accepted answer gcc --version will not give the target information but rather the version of gcc itself.
Instead gcc -v will print verbose information about the environment of the compiler. Among it you will find either the 64 bit (as shown by "x86_64")
Target: x86_64-w64-mingw32
or the 32 bit (as shown by "i686")
Target: i686-w64-mingw32
MinGW is a GCC-port for Windows. Not all of the Windows API is supported (but for many programs the supported stuff is sufficient) and it´s only for 32bit-Programs (which often can run on 64bit-Windows too, but some can´t, and you can´t compile them as 64bit).
MinGW-w64 is a improved version which supports both 32bit and 64bit, and some more of the WinAPI (still not all, because thats much work, but more than MinGW).
MinGW-w64 only provides their source code, but no binaries to "just use" the compiler.
MinGW-builds is a somewhat separate project to provide binaries in the most useful configurations. To get a specialized build of MinGW-w64, manual compiling is still possible.
Using the MinGW-builds self-installer is the easiest way, if nothing unusual is needed. Also see here for help with the self-installer.
Mingw compiles your code to Windows binaries that run under Windows.
Windows subsystem for Linux (WSL) makes Linux binaries. You can install other Linux programs under WSL, except if you need a graphical interface. You can access the Windows filesystem from WSL, but not vice versa.
Cygwin makes Windows binaries that can run under Windows outside the Cygwin shell, as long as you have the Cygwin DLL. This gives a Linux-like environment that is fully compatible with Windows.