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 Overflow
🌐
Reddit
reddit.com › r/cpp_questions › q: can some one explain the difference between mingw and mingw-w64 and the difference between mingw and cygwin?
r/cpp_questions on Reddit: Q: Can some one explain the difference between MinGW and MinGW-w64 and the difference between MinGW and Cygwin?
June 13, 2015 -

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.

Top answer
1 of 1
12
MinGW stands for minimalist GNU for Windows. It's a direct port of gcc and binutils to Windows, using the operating system's version of the Microsoft C runtime (msvcrt.dll). There are some enhancements for added C99 compatibility (as the MS runtime is downright awful in that regard) but more or less it's meant to be minimal — no additional compatibility layers. It's typical to refer to things built with MinGW as 'native', in that the runtime they require is part of the OS, so they are standalone. MinGW-w64 is a fork of the MinGW project that was created because someone felt the progress toward supporting 64 bit Windows was going too slow. They have different policies regarding the reimplementation of headers. One of the problems both projects face is that they have to reinvent the entire Win32 API header set, which is a daunting task. The headers available from MS use MSVC-specific features and won't work with gcc. That means that all Win32 API functions, types, enums, structs, macros, import libraries, GUIDs, etc. have to be meticulously recreated from the public documentation available at MSDN. I'm not sure of the exact policy differences between the two projects, but I think the MinGW-w64 project is a lot more proactive about it, whereas the MinGW project is more reactionary. The MinGW-w64 project offers more optional C99 compatibility libraries as well, to help with porting. MinGW-w64 supports both 32 bit and 64 bit hosts and targets. There are also various third parties who package their own customized MinGW and/or MinGW-w64 bundles, such as mingw-builds, TDM, and nuwen.net. It's important to pay attention to the details of these things, because there are a lot of degrees of freedom of customization. For example, if you want C++ threads to work, then your distro must bundle pthreads-win32, a compatibility layer between POSIX threads (the only kind supported by libstdc++) and Win32 threads. And which form of exception handling do you want? SEH, DWARF, or SJLJ? And do you want the gcc runtime library (libgcc) and/or libstdc++ to be shared or static by default? And do you want any of those optional C99 compatibility layers of MinGW-w64 enabled or not? Cygwin is a completely different project, which implements its own C runtime, based on Newlib but with significant additions. It aims to provide full POSIX compatibility at the source level, which means many Unix programs can be compiled directly without any porting required, but of course the resulting programs require the Cygwin runtime (cygwin1.dll). It's also a distribution of packages compiled in this way. Cygwin supports both 32 bit and 64 bit hosts and targets, and includes a MinGW cross-toolchain so that it can be used as a host system to cross-compile native binaries as well. MSYS is a fork of an ancient and buggy version of Cygwin. It adds some changes to how argument processing in the runtime works. Basically, when invoking native programs (i.e. those that don't use the MSYS runtime), path translation from POSIX to Win32 is performed. MSYS is also a distribution of common Unix utilities built against the MSYS runtime. Because of the path translation change, these utilities can be used with native toolchains and other native win32 tools seamlessly. Some people prefer that to Cygwin, which prefers that all paths remain as POSIX paths an invoking a non-Cygwin binary requires manual translation. In other words, Cygwin binaries/packages tend to work together as a whole, but don't play well with outsiders. I personally find Cygwin to be indispensable for any Windows computer. It provides a fully integrated Unix environment, and unlike MSYS, the programs are all up to date, not ancient versions. Some people call Cygwin bloated, but I have no earthly idea where they're getting that from; a typical Cygwin install uses less disk space than a typical MinGW install due to the fact that everything in Cygwin is split out into individual packages and you don't have to install stuff you don't want, and the fact that everything in Cygwin uses shared libraries.
Discussions

exe - check the platform of the installed mingw, 32bit or 64 bit - Stack Overflow
I am programming in c++. I have installed mingw. I installed it from the standard installer from mingw website. I am confused between mingw32, mingw, mingw64. What are the differences and how can I... More on stackoverflow.com
🌐 stackoverflow.com
Why do MinGW binaries have such complicated names? (e.g. i686-w64-mingw32-...) - Stack Overflow
What, then, do w64 and mingw32 signify in the names of these binaries? Would there be any meaning to a w32 binary, e.g. i686-w32-mingw32-gcc? More on stackoverflow.com
🌐 stackoverflow.com
winapi - What's the difference between Mingw32 and Mingw64 include files? - Stack Overflow
I used Mingw32 and devc++ IDE to develop my application. I included the lib files and include files of Mingw32 and compiled my application. My application should run in both 32 bit and 64 bit vers... More on stackoverflow.com
🌐 stackoverflow.com
May 3, 2017
c++ - What is the difference between MinGW, MinGW-w64 and MinGW-builds? - Stack Overflow
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? More on stackoverflow.com
🌐 stackoverflow.com

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 Overflow
🌐
Wikipedia
en.wikipedia.org › wiki › Mingw-w64
Mingw-w64 - Wikipedia
August 18, 2026 - I have since avoided looking at the mingw-w64 sources to avoid any taint of copyright abuse. I could well be wrong, but I would rather be safe than jeopardise the future of the mingw32, which has tried to maintain a "clean-room" ethic during its development. ↑ Marshall, Keith (19 July 2009). "Re: Harmonizing mingwrt / w32api ...
🌐
Gentoo Wiki
wiki.gentoo.org › wiki › Mingw
MinGW - Gentoo wiki
MinGW (historically MinGW32) is a toolchain that provides a native GCC-based environment for compiling Windows binaries. It can also be used in cross-compilation setups to build binaries on other operating systems. MinGW-w64 is a fork of MinGW that adds support for 64-bit Windows executables.
Find elsewhere
🌐
SourceForge
sourceforge.net › home › browse › mingw-w64 - for 32 and 64 bit windows › wiki2
MinGW-w64 - for 32 and 64 bit Windows / Wiki2 / GeneralUsageInstructions
TDM-GCC: TDM, who also catered updated GCC installers for mingw.org, supports a mingw-w64 toolchain. Be sure to read the Getting Started page. This is of course not usable for cross-compilation. Please understand TDM uses nonstandard patching that makes his builds binary incompatible with all other builds without these patches. For linux, see below. TDM-GCC comes with an easy installer, please use that. The other builds are quite straightforward to set up: extract the toolchain to a directory: 32-bit mingw-w32: eg C:\mingw32 so that C:\mingw32\bin contains i686-w64-mingw32-gcc.exe 64-bit mingw-w64: eg C:\mingw64 so that C:\mingw64\bin contains x86_64-w64-mingw32-gcc.exe
🌐
Unvanquished
wiki.unvanquished.net › wiki › MinGW
MinGW - Unvanquished
June 10, 2026 - Daemon must be built with the posix flavor, because code that uses std::thread does not compile with either of the other flavors. In general there is no reason to use win32. However, it is unfortunately the default in the APT package manager. mcf first appears in the MinGW-W64-builds installer for version 13.2.0.
🌐
Gaia-gis
gaia-gis.it › gaia-sins › mingw32_how_to.html
MinGW (32 bit) how-to - gaia-gis
It will be internally mapped by MSYS2 as /mingw64 In order to mantain a properly ordered filesystem layout, clearly separating 32 bit and 64 bit components we can't any longer adopt the classic /usr/local target as the standard destination where to install our custom builds.
🌐
ArchWiki
wiki.archlinux.org › title › MinGW_package_guidelines
MinGW package guidelines - ArchWiki
June 6, 2026 - For C/C++ one can use GCC and Clang. To use GCC one needs to install mingw-w64-gcc as the regular gcc package cannot be used. To use Clang one can simply use clang specifying an `*-w64-mingw32` platform triple as target. Since the regular clang package does not contain the compiler runtime libraries for Windows targets one needs to compile them separately or use the runtime provided by mingw-w64-gcc.
🌐
Code::Blocks
forums.codeblocks.org › index.php
32 and 64 builds with mingw on Windows (NEWBIE question)
May 3, 2020 - 32 and 64 builds with mingw on Windows (NEWBIE question)
🌐
SourceForge
sourceforge.net › projects › mingw-w64
MinGW-w64 - for 32 and 64 bit Windows download | SourceForge.net
October 11, 2026 - Download MinGW-w64 - for 32 and 64 bit Windows for free. A complete runtime environment for gcc. The mingw-w64 project is a complete runtime environment for gcc to support binaries native to Windows 64-bit and 32-bit operating systems.
🌐
SourceForge
sourceforge.net › home › browse › mingw-w64 - for 32 and 64 bit windows › discussion
MinGW-w64 - for 32 and 64 bit Windows / Discussion / Help: What are the differences between these 2?
February 19, 2013 - These are the names of the cross-compilers you will use when compiling. Instead of calling plain "gcc", you'll need to add the prefix (i686-w64-mingw32 for 32-bit Windows, x86_64-w64-mingw32 for 64-bit Windows)
🌐
Gaia-gis
gaia-gis.it › gaia-sins › mingw64_how_to.html
MinGW (64 bit) how-to
It will be internally mapped by MSYS2 as /mingw64 In order to mantain a properly ordered filesystem layout, clearly separating 32 bit and 64 bit components we can't any longer adopt the classic /usr/local target as the standard destination where to install our custom builds.
🌐
SourceForge
sourceforge.net › home › browse › mingw-w64 - for 32 and 64 bit windows › wiki2
MinGW-w64 - for 32 and 64 bit Windows / Wiki2 / UsingLinuxBinaries
The compilers that generate Windows 32-bit scripts use a prefix of i686-w64-mingw32- (or, -w32- for Linux x86) on the usual Linux compiler binary file names, the compilers that generate the Windows 64-bit scripts use a prefix of x86_64-w64-mingw32- (or -w32-).
🌐
Cplusplus
cplusplus.com › forum › windows › 285056
Setting up Win32 for Mingw - C++ Forum
November 9, 2022 - The original MinGW project is dead (no updates in years, website is down). Mingw-w64 has taken over. MinGW-w64 does not need or use separate Windows SDK. It already comes with all the header files (e.g. Windows.h) and associated import libraries that you'll need to use the Win32 API.
🌐
SourceForge
sourceforge.net › home › browse › mingw-w64 - for 32 and 64 bit windows › discussion
MinGW-w64 - for 32 and 64 bit Windows / Discussion / Open Discussion: What's the difference between Mingw-builds and Mingw packages in Msys2
MSYS2 only provides posix thread model, dwarf for i686, seh for x86_64. mingw-builds provides posix and win32 thread model, sjlj and dwarf for i686, seh and sjlj for x86_64 (https://sourceforge.net/projects/mingw-w64/files/?source=navbar).