Skip to content

Pre-built Toolchains

While mingw-w64 provides the core Windows headers and libraries needed for Windows development, it's not very useful on its own. Most users should install a pre-built toolchain that combines mingw-w64 with a compiler (like GCC with binutils, or LLVM/Clang) and other essential build components. These distributions package everything needed to compile programs for Windows and are much easier to set up than building from source.

Pre-built toolchains and packages

Version Host GCC / mingw-w64 Version Languages Additional Software in Package Manager
Arch Linux logo
Arch Linux
Rolling Linux 15.2.0/13.0.0 Ada, C, C++, Fortran, Obj-C, Obj-C++ many
Cygwin logo
Cygwin
Rolling Windows 13.4.0/13.0.0 C, C++, Fortran, Obj-C many
Debian logo
Debian
Debian 11 (Bullseye) 10.2.1/8.0.0 Ada, C, C++, Fortran, Obj-C, Obj-C++ 9 (gdb, libassuan, libgcrypt, libgpg-error, libksba, libnpth, nsis, win-iconv, zlib)
Debian 12 (Bookworm) 12.0.0/10.0.0
Debian 13 (Trixie) 14.2.0/12.0.0
Fedora Linux logo
Fedora
Fedora 42 14.2.1/12.0.0 Ada, C, C++, Fortran, Obj-C, Obj-C++ many
Fedora 43 15.2.1/13.0.0
GCC-MCF Rolling Windows trunk/trunk C, C++, Fortran, Obj-C, Obj-C++ 20 (boost, bzip2, cmake, curl, gdb, iconv, lua, make, meson, muon, ncurses, ninja, openssl, python, sqlite3, upx, xmake, yasm, zlib, zstd)
Homebrew Rolling macOS 15.2.0/13.0.0 C, C++, Fortran, Obj-C, Obj-C++ 1 (nsis)
LLVM-MinGW 20251202 Windows, Linux, macOS LLVM 21.1.7/trunk C, C++ make, Python
MacPorts logo
MacPorts
Rolling macOS 15.2.0/13.0.0 C, C++, Fortran, Obj-C, Obj-C++ 1 (nsis)
MinGW-W64-builds Rolling Windows 15.2.0/13.0.0 C, C++, Fortran 4 (gdb, libiconf, python, zlib)
MSYS2 logo
MSYS2
Rolling Windows 15.2.0/trunk Ada, C, C++, Fortran, Obj-C, Obj-C++, OCaml many
Ubuntu logo
Ubuntu
22.04 Jammy Jellyfish 10.3.0/8.0.0 Ada, C, C++, Fortran, Obj-C, Obj-C++ 9 (gdb, libassuan, libgcrypt, libgpg-error, libksba, libnpth, nsis, win-iconv, zlib)
24.04 Noble Numbat 13.2.0/11.0.1
25.10 Questing Quokka 13.2.0/12.0.0
w64devkit 2.7.0 Windows 15.2.0/14.0.0 C, C++, Fortran 10 (busybox, ccache, cmake, ctags, gdb, make, ninja, pkg-config, vim, zstd)
WinLibs.com Rolling Windows 15.2.0/13.0.0 Ada, C, C++, Fortran, Obj-C, Obj-C++, Assembler Package manager: work in progress (will offer > 2500 packages)

Arch Linux

On Arch Linux, mingw-w64 headers and runtime libraries for cross-compilation can be installed with the integrated package manager, pacman. Usually they are installed as dependencies of mingw-w64-gcc. See Getting Started.

Cygwin

Cygwin is a Unix-like environment and command-line interface for Microsoft Windows. Its core is the cygwin1.dll library which provides POSIX functionality on top of the Win32 API. It can be used as a build environment which targets Windows directly and for which output doesn't depend on cygwin1.dll.

As part of the numerous packages in cygwin, there are cross-compilation toolchains which target both 32 bits and 64 bits; their names start with “mingw64-”, and can be installed with Cygwin's package manager, setup-x86_64.exe.

Once they are installed, they should be used according to the general cross-compilation approach.

Debian

On Debian and systems that derive from Debian, mingw-w64 headers and runtime libraries for cross-compilation can be installed with the integrated package manager, apt or aptitude. Usually they are installed as dependencies of g++-mingw-w64. See Getting Started.

Debian provides separate packages for gcc and g++, and separate packages for posix and win32 thread models, and (since Debian Trixie) also separate packages for UCRT.

Here is the list of mingw-w64 packages on Debian.

Fedora

On Fedora, mingw-w64 headers and runtime libraries for cross-compilation can be installed with the integrated package manager, dnf. Usually they are installed as dependencies of mingw64-gcc-c++. See Getting Started.

Fedora provides separate packages for UCRT on x86-64.

GCC-MCF

GCC with the MCF thread model is a series of x86-32 and x86-64 native toolchains built by LH_Mouse. The MCF thread model has been merged into GCC 13, and can be enabled by passing --enable-threads=mcf to GCC's configure script. C++11 threading facilities, such as std::thread, std::mutex, std::condition_variable, std::call_once, thread_local etc. invoke the mcfgthread library, which implements them on Windows syscalls in a more standard-compliant and more efficient way, outperforming even native slim reader/write locks (SRW) since Windows 7.

GCC-MCF provides standalone 7-Zip archives of complete toolchains, including mingw-w64 headers, libraries, compilers and linkers.

Homebrew

With Homebrew, mingw-w64 headers, libraries, compilers and linkers can be installed with just brew install mingw-w64.

LLVM-MinGW

LLVM-MinGW is a toolchain built with Clang, LLD, libc++, targeting i686, x86-64, ARM and AArch64 (ARM64), with releases both for running as a cross compiler from Linux and for running on Windows. It supports AddressSanitizer, UndefinedBehaviorSanitizer, and generating debug info in PDB format.

LLVM-MinGW provides standalone tarballs of complete toolchains, including mingw-w64 headers, libraries, compilers and linkers.

MacPorts

To install just the 32-bit or just 64-bit compiler with dependencies, use:

sudo port install i686-w64-mingw32-gcc
sudo port install x86_64-w64-mingw32-gcc

A shortcut to install both:

sudo port install mingw-w64

Here is the list of mingw-w64 packages on MacPorts.

MinGW-W64-builds

Installation: GitHub

MSYS2

MSYS2 is a series of Unix-like environments on Windows. It has a package manager, and provides separate environments (shells):

  • MSYS is for programs that are linked against the MSYS2 (Cygwin) runtime, and not mingw-w64.
  • MINGW32 is for programs that are compiled by GCC and linked against mingw-w64 and MSVCRT.DLL on x86.
  • MINGW64 is for programs that are compiled by GCC and linked against mingw-w64 and MSVCRT.DLL on x64.
  • UCRT64 is for programs that are compiled by GCC and linked against mingw-w64 and UCRT on x64.
  • CLANG64 is for programs that are compiled by Clang and linked against mingw-w64 and UCRT on x64.
  • CLANGARM64 is for programs that are compiled by Clang and linked against mingw-w64 and UCRT on ARM64.

Mingw-w64 headers, libraries, compilers and linkers can be installed with the MSYS2 package manager, pacman. Each environment has its own naming schemes of packages. See Getting Started for UCRT64 or Getting Started for CLANG64.

Here is the list of mingw-w64 packages in UCRT64 and mingw-w64 packages in CLANG64.

Ubuntu

On Ubuntu and Linux Mint, mingw-w64 headers and runtime libraries for cross-compilation can be installed with the integrated package manager, apt or aptitude. Usually they are installed as dependencies of g++-mingw-w64. See Getting Started.

Ubuntu provides separate packages for gcc and g++, and separate packages for posix and win32 thread models.

Here is the list of mingw-w64 packages on Ubuntu.

w64devkit

w64devkit is a portable C and C++ development kit for x64 (and x86) Windows.

Included tools:

The toolchain includes pthreads, C++11 threads, and OpenMP. All included runtime components are static.

Installation: GitHub

WinLibs.com

Standalone mingw-w64+GCC builds for Windows, built from scratch (including all dependencies) natively on Windows for Windows.

Downloads are archive files (.zip or .7z). No installation is required, just extract the archive and start using the programs in mingw32\bin or mingw64\bin. This allows for a relocatable compiler suite and allows having multiple versions on the same system.

Also contains other tools including:

  • GDB - the GNU Project debugger
  • GNU Binutils - a collection of binary tools
  • GNU Make - a tool which controls the generation of executables and other non-source files
  • Yasm - The Yasm Modular Assembler Project
  • NASM - The Netwide Assembler
  • JWasm - A free MASM-compatible assembler

Flavors:

  • separate packages for 32-bit (i686) and 64-bit (x86_64) Windows
  • separate packages for MSVCRT and UCRT builds
  • only POSIX threads builds (which also include Win32 API thread functions)
  • exception model: Dwarf for 32-bit (i686) and SEH for 64-bit (x86_64)

Installation: Download from winlibs.com and extract archive (no installation needed).

Unsorted complementary list

OpenSUSE

The OpenSUSE Linux distribution also has a large and well-maintained set of packages for cross-compilation.