ChatGPT解决这个技术问题 Extra ChatGPT

What is the difference between MinGW, MinGW-w64 and MinGW-builds?

What are the differences between MinGW, MinGW-w64 and MinGW-builds?

And which one should I use to compile c++ 11 source code with the Eclipse IDE on a Windows 8 machine?

MinGW-builds now has this note on their sourceforge page: "Projects joined MinGW-W64, and the new builds will be available on the MinGW-W64(sourceforge.net/projects/mingw-w64) site."

B
Baum mit Augen

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-w64 also has a much better track record of fixing bugs
M
Machavity

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.


"Mingw-w64 makes Linux binaries that cannot run in Windows outside the Mingw-w64 shell." No. Both the standalone MinGW[-w64] toolset and the one installed as part of MSYS[2] create native Windows binaries, which can run just fine outside the MinGW (or MSYS) shell. (Linking with -static helps with the DLLs not on the PATH, though, and e.g. with MSYS2, the msys-2.dll must also be reachable.)