The heart of the Mingw-w64 project is headers and support libraries to
run the output of GCC on Windows. Since Mingw-w64 is neither the home of
GCC nor of binutils, several sets of installation packages which combine
them are available.
In addition, the sources are available but most people will want to grab
binaries directly.
Version | Host | GCC / Mingw-w64 Version | Languages | Additional Software in Package Manager | |
---|---|---|---|---|---|
Arch Linux |
Arch Linux | 12.2.0/10.0.0 | Ada, C, C++, Fortran, Obj-C, Obj-C++ | many | |
Cygwin |
Rolling | Windows | 11.3.0/10.0.0 | C, C++, Fortran, Obj-C | many |
Debian |
Debian 9 (Stretch) | 6.3.0/5.0.1 | Ada, C, C++, Fortran, Obj-C, Obj-C++, OCaml | 9 (gdb, libassuan, libgcrypt, libgpg-error, libksba, libnpth, nsis, win-iconv, zlib) | |
Debian 10 (Buster) | 8.3.0/6.0.0 | Ada, C, C++, Fortran, Obj-C, Obj-C++ | |||
Debian 11 (Bullseye) | 10.2.1/8.0.0 | ||||
Debian 12 (Bookworm) | 12.0.0/10.0.0 | ||||
Fedora |
Fedora 36 | 11.2.1/9.0.0 | Ada, C, C++, Fortran, Obj-C, Obj-C++ | many | |
Fedora 37 | 12.2.1/10.0.0 | ||||
LLVM-MinGW | 20220906 | Windows, Linux | LLVM 15.0.0/trunk | C, C++ | make, Python |
w64devkit | 1.20.0 | Windows | 13.2.0/11.0.0 | C, C++, Fortran |
8 (busybox, cppcheck, ctags, gdb, make, nasm, pkg-config, vim) |
MacPorts |
Rolling | macOS | 12.2.0/10.0.0 | C, C++, Fortran, Obj-C, Obj-C++ | 1 (nsis) |
MingW-W64-builds | Rolling | Windows | 13.1.0/11.0.0 | C, C++, Fortran | 4 (gdb, libiconf, python, zlib) |
MSYS2 |
Rolling | Windows | 13.2.0/trunk | Ada, C, C++, Fortran, Obj-C, Obj-C++, OCaml | many |
WinLibs.com | Rolling | Windows | 12.2.0 | Ada, C, C++, Fortran, Obj-C, Obj-C++, Assembler | Package manager: work in progress (will offer > 2500 packages) |
Ubuntu |
18.04 Bionic Beaver | 7.3.0/5.0.3 | Ada, C, C++, Fortran, Obj-C, Obj-C++ | 9 (gdb, libassuan, libgcrypt, libgpg-error, libksba, libnpth, nsis, win-iconv, zlib) | |
20.04 Focal Fossa | 9.3.0/7.0.0 | ||||
22.04 Jammy Jellyfish | 10.3.0/8.0.0 | ||||
22.10 Kinetic Kudu | 10.3.0/10.0.0 | ||||
23.04 Lunar Lobster | 12.2.0/10.0.0 | ||||
Arch Linux
Installation:
- Community repository (toolchain)
- AUR repository (additional packages)
Ubuntu
Installation: through integrated package manager.
Mingw-w64 packages on Ubuntu
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.
Installation is done through cygwin’s package manager:
setup.exe.
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-”.
Once they are installed, they should be used according to the general
cross-compilation approach.
Debian
Installation: through integrated package manager.
Mingw-w64 packages on Debian
Fedora
Installation: through integrated package manager.
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
Address Sanitizer, Undefined Behaviour Sanitizer, and generating debug
info in PDB format.
Installation: GitHub
w64devkit
w64devkit is a portable C and C++ development kit for x64 (and x86) Windows.
Included tools:
- Mingw-w64 GCC : compilers, linker, assembler
- GDB : debugger
- GNU Make : standard build tool
- busybox-w32 : standard unix utilities, including sh
- Vim : powerful text editor
- Universal Ctags : source navigation
- NASM : x86 assembler
- Cppcheck : static code analysis
The toolchain includes pthreads, C++11 threads, and OpenMP. All included
runtime components are static.
Installation: GitHub
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-builds
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).
MSYS2
Installation: GitHub
Sources
Tarballs for the mingw-w64 sources are hosted on
SourceForge.
The latest version from the 11.x series is 11.0.0.
The latest version from the 10.x series is 10.0.0.
The latest version from the 9.x series is 9.0.0.
The latest version from the 8.x series is 8.0.2.
The latest version from the 7.x series is 7.0.0.
The latest version from the 6.x series is 6.0.0.
The latest version from the 5.x series is 5.0.4.
The old wiki has instructions for building
native
and
cross
toolchains.
Details on how to get the mingw-w64 code from Git and an Git-web viewer are
available on
SourceForge.
Unsorted complementary list
Darwin/Mac OS X
The existing Darwin binaries have been built through buildbot in 2013 and links
to them can be found on the dedicated
page.
OpenSUSE
The OpenSUSE Linux
distribution also has a
large and well-maintained set of packages for cross-compilation.
Rubenvb
Rubenvb has built a number of toolchains including some for less common setups.
They are split into two categories: toolchains targeting
Win32
or
Win64.
GCC with the MCF thread model
GCC with the MCF thread model is a series of
x86 and x64 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 Vista.
Store of binaries on SourceForge
A very large number of other binaries and sources are hosted in the File
Release System on SourceForge which
might have what you are after.
Name | Modified | Size | InfoDownloads / Week |
---|---|---|---|
Parent folder | |||
mingw-get | 2013-10-04 |
2,245,009 |
|
mingw-get-setup.exe | 2013-10-04 | 86.5 kB |
110,620 |
readme.txt | 2013-10-04 | 22.9 kB |
31 |
Totals: 3 Items | 109.5 kB | 2,355,660 |
MinGW Package Download and Installation Tool ============================================ $Id: readme.txt,v e70f37efc80b 2013/10/04 11:03:38 keithmarshall $ Description ----------- mingw-get is a tool to assist users in the management of MinGW and MSYS software installations. Configured via an online XML database, which is managed by the project maintainers, it offers a choice of graphical and command line driven user interfaces facilitating selective download and installation of packages provided by the project. The XML database provides maintainers with a mechanism for the specification of inter-package dependencies; this permits configuration of any package, such that the end user may elect to install just that specific package, leaving mingw-get to ensure that all dependencies will be automatically satisfied at installation time. Licensing Terms --------------- mingw-get is free software. Permission is granted to copy, modify and redistribute this software, under the provisions of the GNU General Public License, Version 3, (or, at your option, any later version), as published by the Free Software Foundation; see the file COPYING, which is distributed with the mingw-get-lic package, and with the source code, for licensing details. Note, in particular, that mingw-get is provided "as is", in the hope that it may prove useful, but WITHOUT WARRANTY OF ANY KIND; not even an implied WARRANTY OF MERCHANTABILITY, nor of FITNESS FOR ANY PARTICULAR PURPOSE. Under no circumstances will the author, or the MinGW Project, accept liability for any damages, however caused, arising from the use of this software. Release Notes ============= The information presented below describes the user visible changes introduced with each release of mingw-get. The online version of this historical record is restricted to recent releases; the full history is recorded in the NEWS file, which is included in the source code package. mingw-get-0.6.2-mingw32-beta-20131004-1 --------------------------------------- Release date: 2013-10-04 This is a further bug fix release; it addresses the following issues:-- - MinGW-Feature #2036 partially implemented: profile.xml now provides for separate assignment of preferences for each of the CLI and GUI clients. Users are advised to review the changes which have been made in the distributed copy of defaults.xml, and to incorporate such adjustments as they see fit, into their own local copies of profile.xml; (alternatively, those who don't care to maintain their own copy of profile.xml should replace any pre-existing copy of profile.xml with a copy of the distributed defaults.xml). - MinGW-Bug #2028 partially resolved: affiliation of individual component packages with any package group is now supported; also the issue of only the first affiliation for each package being honoured, when displaying the package list, has been corrected. - MinGW-Bug #2051 fixed: successful removal of meta-packages is now correctly recorded when updating the GUI's package list display. - MinGW-Bug #2052 fixed: the LUA_PATH environment variable is now correctly specified, for both CLI and GUI clients. - MinGW-Bug #2054 fixed: pre-remove scripts calling the unlink.js helper to remove program shortcuts are now assured that the reference path specified with the '--if-linked' attribute will be normalized to a canonical file system form, before comparison with the similarly normalized path name stored in any possibly matching shortcut. - MinGW-Bug #2057 fixed: mingw-get's embedded Lua interpreter now provides its own built-in wsh.execute method, which allows invocation of the Windows Scripting Host, to run any JScript or VBScript helper, without any need to open a redundant Windows Console. - The "Apply Changes" dialogue now assigns default focus to the "Apply" button, rather than to the list of packages to be removed; this avoids an ugly highlighting issue, when the dialogue is displayed. mingw-get-0.6.1-mingw32-beta-20130910-1 --------------------------------------- Release date: 2013-09-10 This is a bug fix release; it corrects a potential buffer overrun issue within the diagnostic message handler for the GUI client, as identified by MinGW-Bug #2026. In addition to fixing the fundamental buffer overrun issue, the following changes have been included:-- - Improved diagnosis of possible file collisions, resulting from the installation of packages with conflicting content. - No entry is now recorded in the installation manifest, for any file which is not extracted from its providing package archive, when such extraction would result in file collision; (this fixes the secondary issue noted on the ticket for MinGW #2026). - Carriage returns are now handled appropriately, when emitted to the GUI client's diagnostic message handler pseudo-terminal windows. All users of mingw-get-0.6.0 are advised to upgrade to this release, as soon as possible. mingw-get-0.6.0-mingw32-beta-20130904-1 --------------------------------------- Release date: 2013-09-04 This is the first release to incorporate a working prototype for the mingw-get GUI client, together with the integrated mingw-get-setup.exe tool. With the advent of these additional capabilities, the existing mingw-get-inst.exe wrapper becomes redundant, and is now deprecated; it will be withdrawn after the next mingw-get release. With this release of mingw-get-setup.exe, first time installation of mingw-get has become considerably simpler than previously; please see the "Installation Instructions" for further information. In addition to the addition of the GUI client, and the simplified first time installation procedure, this release incorporates the following new user visible features:-- - New "preferences" section in profile.xml; this allows users to adjust the default behaviour for command line options such as "--start-menu" and "--desktop", to allow the automatic creation of shortcuts, (for packages which provide them), without requiring explicit specification of the option on every mingw-get invocation. See the comments within defaults.xml, for configuration instructions. - The output from "mingw-get --help" has been revised, to provide a better explanation of the use of the "version selection" feature, which allows users to force installation of a particular non-current version of any package. - The "gui.exe" subsidiary program has been renamed as "guistub.exe"; it remains in place, with this new name, to furnish diagnostics, in the event that the user attempts to invoke the GUI from the command line, when no GUI support has been installed. Such GUI support is now provided by "guimain.exe"; this may be installed optionally, by choosing to install the "mingw-get-gui" package. - Internal "globbing" of command line arguments is now explicitly disabled; (any benefit of ever having supported this seems dubious; however, external "globbing" by shells, such as MSYS' sh.exe and bash.exe is not, and cannot be, affected by this change). - For users wishing to follow development at the source code level, the master source code repository has been relocated from CVS, to a new git repository at git://git.code.sourceforge.net/p/mingw/mingw-get; please refer to the INSTALL file, in the current source distribution, for further information on accessing this repository. mingw-get-0.5-mingw32-beta-20120426-1 ------------------------------------- Release date: 2012-04-26 This is an emergency bug-fix release; it provides an immediate interim work-around for bug #3520864, circumventing a critical regression which was introduced in mingw-get-0.5-mingw32-beta-20120416-1, and is thus a mandatory upgrade for users who had previously upgraded to that version. It also incorporates the correction for bug #3520488. mingw-get-0.5-mingw32-beta-20120416-1 ------------------------------------- Release date: 2012-04-16 This milestone release marks the point at which the code base, for the CLI implementation, is deemed to have progressed from alpha to beta (or better) quality. It corrects several packaging deficiencies within the source code distribution, in addition to fixing two reported bugs; it also adds several new features. The following bugs are fixed by this release:-- - #3416013: --reinstall and dependent packages Specifically, in the case of application of the --reinstall option to meta-packages, previous releases would have no effect. This is now corrected, such that the --reinstall action is applied recursively to each declared requirement of any meta-package, to the depth of the first non-meta package in each requirement chain. - #3424406: install --reinstall performs an upgrade When performing the "install" action, with the --reinstall option, previous releases would consider the availability of upgrades for the package in question, promoting the "install" action to "upgrade" when possible. This anomaly has now been corrected; when specified with the "install" action, the --reinstall option will cause reinstallation of the originally installed version, ignoring available upgrades; (the former behaviour remains available, by specifying the --reinstall option together with the "upgrade" action). The following new features have been implemented:-- - Forced installation of a specified (non-current) release. The package name specified as the predicate of any "install" or "upgrade" action may now be qualified by a version specification, allowing the user to select any known version, (not necessarily the most recently released), for installation. In the case of any package which has not been previously installed, the format is any of: mingw-get install "package-name=version-spec" mingw-get install "package-name<version-spec" mingw-get install "package-name<=version-spec" mingw-get install "package-name>=version-spec" mingw-get install "package-name>version-spec" while for any package which has been previously installed, and is to be "rolled back" to an earlier release, the same forms are supported, using the "upgrade" action in place of "install". In each of the above command forms, "package-name" represents the unqualified package name, as it would be specified in any regular invocation of mingw-get, and "version-spec" is the selector for the desired version; (in the case of an "=" qualifier, this must be an exact match for the desired version, unless it ends with the "*" wild card). For example, if GCC has already been installed at version 4.6.2-1, (the most recent release at this time of writing), it may be rolled back to the last version 4.5 release by: mingw-get upgrade "gcc=4.5.*" or by using an inequality specifier, to exclude gcc-4.6 and later: mingw-get upgrade "gcc<4.6" Note that, particularly in the case of the inequality qualifiers, the argument must be quoted, to avoid interpretation of the inequality operator as the shell's redirection operator. Also note that any explicit *inclusive* version range, such as: mingw-get upgrade "gcc>4.5<4.6" is permitted; however no white space is permitted, anywhere within the qualified package specification. - Support for package maintainer scripted installation hooks. An embedded script interpreter, based on Lua version 5.2, has been incorporated; this provides support for "pre-install", "post-install", "pre-remove", and "post-remove" action hooks, which may be specified by package maintainers, in the form of Lua scripts embedded within "action" elements in any package's XML catalogue entry. This capability is further supported by the provision of Lua modules, providing a standardised mechanism for creation of MS-Windows shell links, (a.k.a. shortcuts). - New option: "--desktop" Grants permission, to package maintainer specified scripts, to create shortcuts on the user's desktop; alternatively, it may be specified as --desktop=all-users, to make such shortcuts available to all users. - New option: "--start-menu" Grants permission, to package maintainer specified scripts, to create shortcuts in the user's start menu; alternatively, it may be specified as --start-menu=all-users, to make such shortcuts available in the start menus of all users. Installation Instructions ========================= The information which follows describes the procedure for installing and configuring mingw-get, and for keeping the installation current. The online version of this document is an abridged form, focussing on the installation of binary releases; users who prefer to build and install from source are advised to consult the unabridged form of this document, which may be found in the file "INSTALL", within the source code distribution tarball. Please report bugs as directed at http://mingw.org/Reporting_Bugs First Time Installation of a Current Binary Release --------------------------------------------------- Note that, as of release 0.6.0, the installation procedure for mingw-get has been significantly simplified. The installation instructions which follow relate to this release, and later; for instructions relating to any earlier release, or if you are unable to run the new setup tool on any legacy version of Windows, please refer to the following section, under the heading "First Time Installation of a Legacy Binary Release". To install mingw-get, visit the MinGW files repository at: http://sourceforge.net/projects/mingw/files then, from the "Installer" folder, download and run mingw-get-setup.exe, and select your choices from the options presented [*], to install mingw-get. When this has completed, you will then be offered the option to immediately continue with the installation of a basic selection of MinGW packages [**]. If you do choose to continue with package selection, this will be processed by an integrated preview of the mingw- get GUI application, (regardless of whether you have accepted or declined the option to install the GUI); to complete your initial installation:-- - Select individual packages, within the upper right hand "list-view" pane of the GUI window; - From the "Package" menu, (which also appears as a pop-up, when you click the status icon at the left hand side of the list entry), select the option to "Mark for Installation", in respect of each package which you wish to install; - Having so marked all packages which you wish to install, from the "Installation" menu select the "Apply Changes" option, to complete your initial installation. After you have completed the installation of mingw-get, as described above, and regardless of whether you chose to install additional packages, or not, you are advised to review the configuration, as specified in your profile.xml file, and noting in particular, any new features which are described in the supplied defaults.xml file, if you have a profile.xml from a previous release; please refer to the section below, under the heading "Specifying the Configuration", for details. [*] By default, mingw-get-setup.exe will offer to install mingw-get into the "C:\MinGW" directory. You are *strongly* recommended to adopt this default; however, if you do decide to change it, please *do* choose an alternative with no white space within its absolute path name. In particular, those who choose to ignore this advice, and install MinGW into some subdirectory of (for example) C:\Program Files", usually discover to their cost that certain tools may not work correctly. [**] The set of packages offered, as the foundation for a basic installation, are equivalent to those offered by the mingw-get-inst.exe companion to earlier releases of mingw-get. Unlike mingw-get-inst.exe, mingw-get-setup.exe, does *not* insist that you install the basic GCC compiler suite. You are free to install it, or not, at your own option; if you do wish to install it, please select the "mingw32-base" package, which is the equivalent of the minimum mandatory selection imposed by mingw-get-inst.exe First Time Installation of a Legacy Binary Release -------------------------------------------------- The instructions which follow relate to the installation of mingw-get releases prior to version 0.6.0; they also apply in the case of later versions, where a legacy version of Windows may not permit you to run the new mingw-get-setup.exe tool. For installation of release 0.6.0, or any later release, using the new tool, please refer to the preceeding section, under the heading "First Time Installation of a Current Binary Release". To install mingw-get, visit the MinGW files repository at: http://sourceforge.net/projects/mingw/files and, from the "Installer/mingw-get-<version>-<class>-<release>" folder, download your choice of either: mingw-get-<version>-mingw32-<class>-<release>-bin.zip or (preferred, if you know how to unpack it): mingw-get-<version>-mingw32-<class>-<release>-bin.tar.xz Whichever of these you choose to download, you should unpack it into the directory in which you intend to host your MinGW installation; (we *strongly* recommend that you adopt our standard of C:\MinGW [*], unless you have an exceptional reason to make an alternative choice), then use your preferred method for assignment of environment variables to add the appropriate directory (default C:\MinGW\bin) to your PATH; (this should be added as a permanent PATH assignment). Having completed this phase of installation, you may then wish to review the following section on configuration; if nothing else, you may wish to copy the supplied defaults.xml file to profile.xml, even if you choose not to introduce any customisations. Finally, to initialise the installation recording database, you should run the command [**]: C:\> mingw-get install mingw-get [*] If you insist on adopting a different directory from the recommended default, you are *strongly* advised to avoid any directory which has white space in its absolute path name; in particular, those who choose to ignore this advice, and install MinGW into some subdirectory of (for example) C:\Program Files", usually discover to their cost that certain tools may not work correctly. This document will refer to files as though installed in the recommended default location, with a path prefix of C:\MinGW. If, having read the above warning, you do decide to adopt an alternative installation path, then please substitute your alternative prefix, as appropriate, where this document refers to C:\MinGW. [**] If you have chosen mingw-get-0.6.2-mingw32-bin.tar.xz as your installation source, rather than mingw-get-0.6.2-mingw32-bin.zip, you may like to create the directory: C:\MinGW\var\cache\mingw-get\packages (together with any requisite parents, and adjusting the C:\MinGW prefix to suit your installation choice, if necessary). You may then move the mingw-get-0.6.2-mingw32-bin.tar.gz file to it, *before* you run the above command; this will relieve mingw-get of the overhead which would be incurred by downloading the file a second time. Specifying the Configuration ---------------------------- When you invoke mingw-get, it will attempt to read configuration data from the file: C:\MinGW\var\lib\mingw-get\data\profile.xml (with any necessary adjustment of the C:\MinGW installation prefix, as noted previously); if, and only if, this file cannot be read, then a fallback attempt will be made, to read the configuration from: C:\MinGW\var\lib\mingw-get\data\defaults.xml instead. Of this pair of files, profile.xml is *not* included within the mingw-get distribution, but defaults.xml *is*. It is a liberally commented XML file, which you are advised to copy to create profile.xml; you may then modify this, as you see fit, to suit your own installation requirements. [*] At the present time, the only entries you should consider changing are the path names specified by the "path" attribute associated with each of the "sysroot" elements within the first (only) "system-map" element; (these specify the prefix directory path names for your installation). You probably want to make the path for the "mingw32" subsystem match your choice for your mingw-get installation; (the "%R" notation, used in defaults.xml, sets it up thus, regardless of whether you choose to install in C:\MinGW, or an alternative location). [*] The recommendation to copy defaults.xml to profile.xml may seem to be an unnecessary inconvenience; it is implemented this way in order to safeguard any configuration changes you wish to make; during an upgrade, defaults.xml will be overwritten, but profile.xml will not, so your configuration will be preserved. Upgrading an Existing Installation to a Newer Binary Release ------------------------------------------------------------ Once you have completed a first-time installation of mingw-get, whether from a binary release or by building and installing from source, you may wish to upgrade it, as the project team publishes new releases. Unless you insist on *always* installing from source, (in which case each upgrade effectively becomes a fresh first-time installation from the new source code), and provided: - you have previously installed mingw-get-0.1-mingw32-alpha-3 or newer, and - you have completed the first-time installation process, by running C:\> mingw-get install mingw-get then you may upgrade to a newer binary release by running C:\> mingw-get update C:\> mingw-get upgrade mingw-get Otherwise, if you have a previously unfinalised installation, i.e. you did not previously run C:\> mingw-get install mingw-get and that previous installation is of mingw-get-0.1-mingw32-alpha-3 or newer, then you may upgrade and finalise by running C:\> mingw-get update C:\> mingw-get install mingw-get Alternatively, any previous installation of mingw-get may be upgraded by simply performing a new first-time installation, overwriting the previously installed version; (this is the only option available, if the original installation predates mingw-get-0.1-mingw32-alpha-3). $Document: readme.txt $: end of file
Source: readme.txt, updated 2013-10-04
MinGW in recent times was known as MinGW32 and a newer version as MinGW-w64. It is an open-source development software that you can use to create Microsoft Windows Apps. The developers of the project have written it in C and C++. The main reason to use MinGW Download is to develop and support GCC which is a collection of programming languages compiler of Windows 11/10.
Some call it out as GNU Compiler Collection. Its native windows port carries extensions to Microsoft Visual C++ (Microsoft Visual C++) runtime which shall provide support to C99 function. For those who do not know this is an older version of C language standard. You can execute all software which are created through MinGW on 64-bit windows platform.
What is MinGW
Use this to compile system which are based on GNU, GCC and Binutils project and both compiles and links the codes which need to run on all the Win32 systems. Moreover, it shall also provide you with compilers for Fortan, C and C++. The best thing is it is not dependent upon third-party C runtime DLL files but inside the program, it comes with Jargon which can be a bit overwhelming.
MinGW stands for Minimalist GNU for Windows. It does not give you any POSIX runtime environment for the POSIX app deployment. If you wan this then you need to use Cygwin instead. It shall also provide you with each and every open-source programming tool set which is required in developing windows applications. After reading all this, yes, you are thinking right this is perfect for easy yet intuitive installation of GNU compiler collections. You can also use C or C++ IDEs if you intend to make applications in general but for native support, MinGW is unbeatable.
MinGW Newest Features
There are features released now and again by the project team and some notable ones include:
- API document in API format.
- GNU compiler collection port which is GCC including C, C++, ADA and Fortran compilers.
- A utility, gdbmigrator() which shall provide you with automated migration of code written against Microsoft.
- GNU Binutils for Windows 11 like linker, archive manager, assembler and much more.
- Command line installation, mingw-get in order to obtain and manage its installation packages.
Advantages and Disadvantages of using MinGW
This is not a great option if you are new to programming and willing to learn. Go for PowerShell which comes for free. As MinGW is easy to use the downloads are all over all the place and there are many other types of downloads on top of one another. The auto-installer also does not work properly. Moreover, it also comes with errors while you update them from your sync repositories.
For more ease, you can check the web for some tutorials on how to install and use the program. Keep in mind that many of these are conflicting. Even on official sites, you shall see that many of the links are broken so it gets all confusing. All this is because the project has not been well-maintained by the developers so it’s outdated but still it is great to build native windows applications.
It is outdated. If you are intended to use scripts natively and in a unique way on windows then this is a useful program. With this, you can easily search windows files in UNIX manner through its find command. At the same time, you can also find out many issues when it comes to the process of installation. At times you need to do it manually.
ALSO SEE: 6 Best Free Python Compilers for Beginners.
How To Install MinGW on Windows 11 (A step-by-step process)
Once the installer has been downloaded you need to follow the steps mentioned below:
- You need to head to the folder which carries MinGW-64 installer (mingw-w64-Windows-11-10-exe).
- Once done, run the installer and hit “next” on the steps presented.
- You need to select the following for the compiler to work correctly.
- After this change, the destination folder to C:\mingw make sure to not put any space in the name of the folder ever.
- The installer at this point shall download the necessary files. Once done, they shall be in the location where you have specified above.
- Now the installer shall extract files from the downloaded file and place them into the installation directory.
- A dialog shall pop up once all the files have been installed, hit “next”.
- If the process of installation was a hit then you shall see a final dialog box, hit “finish” to complete.
- Now the last one is a hard step for many students mainly because they did not properly configure their system after the software got installed.
If you want to use gcc or g++ compilers for any command prompt then you need to add location of “bin” folder to the path, assuming you have installed MinGW in C:\mingw as mentioned above you need to add the following:
Paul@ninja-ide:~# \Paul\mingw\mingw64\bin
In the start, if you are not aware on how to modify the path then you take help.
When adding \Paul\mingw\mingw64\bin to the path this needs to be the first entry in the path, otherwise, it shall cause the wrong compilers to be used. Once this is done you need to logout and login to windows.
As you log-in again you need to open a command prompt, at this time you shall be able to type “gcc” from any command window and get the latest version of the compilers.
How To Install MinGW Tools for C/C++ in Windows 11
If you are planning to code in C or C++ in MinGW then having MinGW Tools installed is a must.
- You need to check “MSYS Basic System” at select component dialog.
- Add Paul\MinGW\bin folder to windows path variable, for this click right on computer and choose “properties” > click on “advanced system settings”, select “the advanced tab”, hit “environment variables” > under system variables, go down and choose “path” then hit “edit” > carefully go to the right of the variable value field and make sure to not delete anything > at end of field include semicolon. This process is almost identical to when you are adding an environment Path for Python to work on Windows 11.
- You need to verify that the install was successful for this: go to “start” and type “cmd” in the search field and hit “enter” > enter gcc in the terminal which appears and hit “enter”.
- Done, this will show you that MinGW is now properly working.
How to Fix (The File has been Downloaded Incorrectly) Error in MinGW
If you have just downloaded MingGW and were trying to install it but the above error struck you then follow the 5 steps below to fix it:
- You need to download the “MinGW-w64 zip file”.
- After this simply unzip the files and copy them to Paul\mingw64.
- Then add this to Environment Variables in Windows 11 or 10.
It does not depend upon Microsoft C-Runtime DLLS so it is possible to both compile and link apps with it without needing any additional libraries. When used in conjunction with SDSS which is a small device C compiler then you can develop efficient embedded systems app targeting huge range of devices.
Related posts you may like:
- Download Dev-C++ Free for PC in 64-bit.
- Atom Editor For Windows 11 Download.
- Code::Blocks Download for Windows 11.
MinGW is your go-to software if you are a developer creating apps for Windows. MinGW Download for Windows 11 in 64-bit allows you to create apps that will work natively on any PC. MinGW-64 is the same however it was improved and came with more libraries for native programming.
Title | Information |
---|---|
Name: | Standard: MinGW Improved: MinGW-w64 |
License: | Free (General Public License) |
OS Support: | Windows 10 and Windows 11 |
Author: | Colin Peters |
Version: | 10.0 (Latest) |
Size: | 15.6 MB for Zip Archive 85 KB for Installer |
MinGW Free Download
My MinGW distribution («distro») is x64-native and currently contains GCC 11.2.0 and Boost 1.77.0.
mingw-18.0.exe (96.9 MB) : This is a self-extracting archive. It’s incredibly easy to install; see How To Install below.
My build scripts are available on GitHub, and they’re also stored within the distro itself.
* With jpegtran.
** With pcregrep and pcre2grep.
*** Only sort, uniq, and wc.
I recommend that anyone who is learning Standard C++ and who uses Windows for a primary development environment should use two compilers: the most modern version of Microsoft Visual C++ and the most modern version of GCC, the GNU Compiler Collection. Using two compilers that conform closely to the Standard subjects your code to more strenuous trials than using a single compiler would.
MinGW is a port of GCC to Windows. It is free of charge and simple to use (well, as simple as toolchains ever get). It produces standalone Windows executables which may be distributed in any manner. MinGW’s official website mingw-w64.org provides various builds, but I maintain my own distro because I demand complete control. (It’s a long story, but mingw-w64 forked from mingw.org. Although my distro was based on mingw.org for many years, I now consider mingw-w64 to be the one true MinGW.)
Please note that I did not write any of the components of my distro. I simply compiled them and packaged them together.
First, run the self-extracting archive. It’ll ask you for a directory:
Whatever you say, it’ll create a MinGW subdirectory there. I recommend saying C:\
(as in the screenshot) so it’ll create C:\MinGW
.
Second, click Extract. It’ll display a progress bar:
Just wait until it’s done. I’ve gone to great lengths to make the distro as small as possible, but Boost and git are very large, so there’s a lot of stuff to extract.
Third, open the root of the distro, which is C:\MinGW
if you followed my recommendation. There, you’ll find two batch files and README_STL.txt
. Inside the readme, there are copies of this webpage’s Contents and History sections in case you forget which version of the distro you have or what it contains. There are also the following usage instructions:
Finally, type g++ --version
in your Command Prompt and hit Enter. You should see something like this:
If you see something like that, then you have successfully installed MinGW.
Simply replace C:\MinGW
.
I shouldn’t need to warn you about extracting a newer version of the distro into a directory which already contains an older version. That would create a mess.
Simply delete C:\MinGW
.
components-18.0.7z (96.4 MB) : My distro is formed by extracting these binary components into a single directory, then adding the batch files and readme. These binary components are useful if you want to create a subset of my distro, or if you want to update a few components without having to rebuild everything.
Building the components from scratch requires a few things. First, you’ll need their sources, which you can obtain from their official websites. Second, you’ll need my build scripts and patches, which are in the scripts-VERSION subdirectory in the root of the distro. Finally, the build scripts must be run in MSYS2, and README.md in scripts-VERSION explains how to set that up.
THE SOFTWARE IS PROVIDED «AS IS», WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
https://nuwen.net/mingw.html (updated 10/30/2021)
Stephan T. Lavavej
Home: stl@nuwen.net
Work: stl@microsoft.com
This is my personal website. I work for Microsoft, but I don’t speak for them.
Release of 13.2.0-rt_v11-rev0
- Release for GCC-13.2.0 with MinGW-W64 runtime version 11
- MCF thread model was added
Release of 13.1.0-rt_v11-rev1
- Release for GCC-13.1.0 with MinGW-W64 runtime version 11
Release of 12.2.0-rt_v10-rev2
Release 12.2.0-rt_v10-rev1
- binutils updated to 2.39
- zlib updated to 1.2.13
- expat updated to 2.5.0
- new option
--with-default-win32-winnt=<ver>
Release 12.2.0-rt_v10-rev0
- Release for GCC-12.2.0 with MinGW-W64 runtime version 10
Release 12.1.0-rt_v10-rev3
As restart for Release v12.1.0-rt_v10-rev2
The following libraries were used to build the package:
- libiconv-1.16-static
- zlib-1.2.11-static
- gmp-6.2.1-static
- mpfr-4.1.0-static
- mpc-1.2.1-static
- isl-0.24-static
- mingw-w64-headers-v10-nomulti
- mingw-w64-crt-v10-nomulti
- winpthreads-v10
- binutils-2.38-nomulti
- gcc-12.1.0
- libmangle-v10
- gendef-v10
- genidl-v10
- genpeimg-v10
- widl-v10
- libgnurx-2.8.0
- bzip2-1.0.6
- termcap-1.3.1
- libffi-3.2.1
- expat-2.4.7
- ncurses-6.2
- readline-8.1
- gdbm-1.19
- tcl8.6.11
- tk8.6.11
- openssl-1.1.1k
- xz-5.2.5
- sqlite-3350500
- Python-3.9.10
- gdb-11.2
- make-4.2.1
Release 8.5.0-rt_v10-rev0
- Release for GCC-8.5.0 with MinGW-W64 runtime version 10
Release v12.1.0-rt_v10-rev2
Release v12.1.0-rt_v10-rev1
Release v12.1.0-rt_v10-rev0
- GCC-12.1.0 and MinGW Runtime v10 was added