Revision of Getting Started from 2009, October 14 - 10:42

This page will guide you through a typical, one size fits all, installation of MinGW. If you are new to MinGW, you may wish to refer to the MinGW page to learn which packages are required, and which tools are used to perform which tasks. For more advanced installation instructions, refer to HOWTO Install the MinGW (GCC) Compiler Suite.

MinGW Installation Notes

MinGW may have problems with paths containing spaces, and if not, usually other programs used with MinGW will experience problems with such paths. Thus, we recommend that you do not install MinGW in any location with spaces in the path name reference; i.e. you should avoid installing into any subdirectory of "Program Files" or "My Documents", or the like.

No version numbering convention exists, for MinGW as a whole. Each package has its own version number, and the installer version number does not necessarily reflect the version number of any individual package which it installs.

Automated Installer

Note: The automated installer is now considered deprecated, and is currently unmaintained; it will not install GCC 4. You will get GCC 3 using this method. If you want to install the latest GCC release, use the Manual Installation method below.

MinGW base tools: This required component is composed of binutils, the C compiler, the runtime libraries and platform API.

... compiler: These components each install a compiler for the programming language specified in the label of the component. Usually, you will at least want to also install the C++ compiler.

MinGW make: This component installs make, a program capable of interpreting Makefiles. This component is highly recommended for those who don't want to also install MSYS (why not?); many IDE's require this functionality.

When choosing the "Destination Folder" for the installation, please do not choose any path that contains spaces in its absolute name, unless you have read the installation notes above and are willing to accept the possible consequences; if you are in any doubt, accept the default.

The installer will then download and install the components selected.

Manual Installation

As an alternative to the automated installer, you may install MinGW by manually downloading and uncompressing individual components.

You will also need a program that can extract tar.gz files, such as the GUI-based WinZip or 7-Zip, or the command-line tar and gzip tools. Command line tools are provided by MSYS, or Google for 'gnu+tools+win32' to find alternatives. The GnuWin32 project provides Windows-native builds of tar and gzip CLI tools.

The whole C:\MinGW subtree is fully relocatable which means there can be several different versions of the MinGW toolchain installed in parallel, e.g. in directories C:\MinGW-3.4.5 and C:\MinGW-4.4.0. Switching between these is merely a matter of renaming directories, assuming C:\MinGW\bin; has been added to the path. You can permanently add C:\MinGW\bin; to the path by opening the System control panel, going to the Advanced tab, and clicking the Environment Variables button.

Updating single packages (e.g. when there is a new version of the w32api) can be done by copying the new package to C:\MinGW and unpacking as above to overwrite the older version. This manual update also works with an initial automated install.

I was trying to install the mingw in the order of files that is above (binutils, mingw-runtime, w32api...) and when I was trying to install the gcc core, appeared a message asking me about overwrite a file called "libiberty" (I don't remember in this moment the extension). What libiberty is the correct to leave, the first or the libiberty that is in the gcc core?

It doesn't matter which one you keep. The libiberty.a file is an artifact of both binutils and gcc with the unfortunate side affect of the file being installed with the ``make install command which is the real error here. The two packages should never install the file but the way the iberty library is packaged within both with a separate ``make install' command allows this to happen. The iberty library is packaged with each because of both the GPL and the GNU Coding Standard.

You cannot use MinGW-5.1.6.exe to install any version of GCC later than 3.4.5. Neither can you gerrymander it, to build from sources downloaded from any repository other than our own SF distribution; it requires the pre-built binary package files, which we provide.

What you are trying to do is both unsupported and impossible, with the deprecated installer package you are trying to use.

I notice that someone has very helpfully updated this page according to information from the "release notes". Could someone add a link to the release notes on this page? That would also be very helpful. Also, does one need to install both the "bin" and "dll" versions of the packages, or just one of them? In either case, it would be very helpful to disambiguate the commas to either "and" or "or", or if punctuation is preferred, "&" or "/". Thanks!

This may be a trivial problem but in spite of updating the path variable (c:\MinGW\bin), gcc/g77/etc. does not work from command line. It works fine in the c:\MinGW\bin directory as well as on my other computer. I am not sure what the problem could be. Any suggestions?

I need advice on how to install gdb manually. I have two download files:

gdb-6.8-mingw-3-patch

gdb-6.8-mingw-3.tar.gz2

I plan to use the .tar.gz2 download for the installation and your instructions for that seem clear enough. Is the patch file required for this installation? That is, do I need to apply the patch file to the extracted content from the .tar.gz2 archive or is the patch file only used with the src download?

GDB is an entirely separate product from GCC. It is not a prerequisite for running GCC, as are the majority of other packages which are installed by MinGW-5.x, and hence it is not imperative that MinGW-5.x should install it. However, the same argument for exclusion could be applied, in the case of mingw32-make, which is included; conversely, the inclusion of mingw32-make sets a precedent for the possible inclusion of GDB. Ultimately, the decision on that is down to the package maintainer; since MinGW-5.x is currently unmaintained, don't expect it to happen any time soon.

mingw-get, when it eventually becomes available, will install any package -- and optionally all of them -- which is distributed by the MinGW Project.

I'm confused by your reference to gdb-6.8-mingw-3.tar.gz2, for there is no such thing as gz2 compression; it is either bz2 or gz. In this case, I assume you mean the binary release file gdb-6.8-mingw-3.tar.bz2, rather than the source tarball, gdb-6.8-mingw-3-src.tar.gz.

The gdb-6.8-mingw-3-patch file, to which you refer, (and by which I assume you mean gdb-6.8-mingw-3.patch), details the source code changes to mainline gdb-6.8 sources, which were applied to achieve this gdb-6.8-mingw-3 release candidate, (which strictly, should be called gdb-6.8-mingw32-3). They are of interest only to those integrating mingw32 support into mainline GDB; you do not need them, if your only interest is in deployment of gdb-6.8-mingw-3.tar.bz2. (It isn't immediately obvious if these patches have already been incorporated into the local sources, gdb-6.8-mingw-3-src.tar.gz -- I am not the maintainer of this package -- but the naming convention would suggest that they have).

I agree it would be convenient to include gdb. how many programmers are there who want to install a compiler and don't want to also install the debugger?

at the least, it would be useful to just outline the basic steps to install gdb. I downloaded the same files as darrenleeweber and had the same questions-- minGW's default installation (at least with g++ alone) does not include bzip2, nor are there any instructions on how to install these packages. here's what I did after downloading the binary gdb distro. I haven't used gsb before so I can't guarantee this approach works properly, but fyi:
1. download the bzip2 executable from http://www.bzip.org/downloads.html, rename to "bzip.exe" and put in a path folder (e.g. c:\minGW\bin). in the following, I assume you use c:\minGW as the base minGW folder
2. if you don't have it, install winzip or 7-zip
3. unpack the tarball: C:\MinGW> bzip2 -d C:\MinGW\gdb-6.8-mingw-3.tar.bz2
4. using winzip or 7-zip, unpack the resulting gdb-6.8-mingw-3.tar file to folder "gdb-6.8-mingw-3". I did not try to, and do not recommend you try to, extract into the current directory, since it could overwrite some of your shared libs etc that are being used for the rest of your minGW platform.
5. copy gdb.exe into C:\MinGW\bin. one possible problem with this is that gdb.exe might not be consistent with the versions of libs and other shared files in the minGW platform you have installed. It seemed to work for me using minGW 4.4.

It would be nice if the automated installer gets updated and restructured a little bit... I know, there is no time, but the installation process could be a little easier. It would be great if one could choose a major version instead of previous, current, candidate.... I mean candidate what? Then the mingw project has a lot of extra utilities that could be bundled with the download as well, like gdb or msys! yes very nice utilities! It would break the confusion between all the different download packages one has at sourceforge, since there is no real documentation about what belongs to what and which package is stable.

If you don't have a favourite mirror, or you don't know its name, please choose one from the list here, (or use `osdn', for SourceForge's master repository, which might help to annoy them into fixing their bug a bit quicker).