Revision of HOWTO Install the MinGW (GCC) Compiler Suite from 2010, December 3 - 23:50

Printer-friendly version

Automated Installer

If you are new to MinGW, see the instructions for Getting Started with MinGW using the GUI installer. If you wish to install from the command line (using mingw-get), do the following:

  • Download the mingw-get installer and extract/rename the files to the C:\MinGW directory.
  • Add C:\MinGW\bin; to the PATH environment variable.
  • Use the mingw-get command to install MinGW as explained in the mingw-get release notes.

Following these instructions will install GCC version 4.5. See also Getting Started for more detailed instructions.

Cautions

  • The recommended installation directory is C:\MinGW. Unless you are very sure you know what you are doing, you should not change this; in particular: never install MinGW into any directory which includes spaces in its absolute path name.
  • The installer will not automatically modify any environment settings, (in particular PATH). You will need to add the MinGW `bin' directory, as described below; see Environment Settings.
  • For versions of MSYS prior to MSYS-1.0.11; do not install MinGW into the same path as MSYS; (you may install to a subdirectory of the MSYS tree, as long as non-MSYS executables are not placed in the MSYS /bin directory).
  • When you install both MSYS and MinGW, and have /mingw mapped to your MinGW directory (as is the default), if you then install ports, supplementary MinGW programs or libraries, you are advised to install them into the /mingw directory tree, to ensure that they will be available for use with GCC; e.g. you should configure with
    ../path/to/configure --prefix=/mingw

    or

    ../path/to/configure --prefix=`cd /mingw; pwd -W`

    (This latter form is preferred, when the program being installed is a native Windows binary, and the prefix may be hard coded into the executable).

Manual Installation

As an alternative to the automated installer, you may install MinGW by manually downloading and extracting individual components. Please refer to the release notes for detailed notes, including known issues.

Before proceeding, you are encouraged to also consult the release notes for each individual package; links to these will be found adjacent to each package file entry, on the MinGW Download Page.

Download at least the following (or newer) packages from the MinGW Download Page; where two or more component packages are indicated, you need both / all of them. (Note that the package links provided here refer to current releases at the time of writing; these links may not necessarily be updated immediately, when new releases become available):

These are the minimum requirements for a working MinGW GCC toolchain for C.

Optionally you may want to add any of the following additional languages; (for each which you choose to install, you need both the bin and the dll component packages):

  • gcc-g++ (bin and dll) for C++
  • gcc-objc (bin and dll) for Objective C
  • gcc-gfortran (bin and dll) for Fortran 90/95
  • gcc-java (not yet available) for Java
  • gcc-ada (bin and dll) for Ada

Note that the GCC versions of these files must match the GCC version of the gcc-core installed.

Optionally you may want to add any of the following additional utilities:

You may also want the following additional features:

You will also need a program that can extract .tar.gz and .tar.lzma files, such as 7-Zip or command-line tar, gzip, and lzma tools. A basic standalone tar program bsdtar that includes gz and lzma support is available from the MinGW project.

Create a directory (e.g. C:\MinGW), download all packages to C:\MinGW, extract the files from each package, and add C:\MinGW\bin; to your PATH environment variable as described in Environment Settings below.

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.5.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.

Information on other libraries commonly used by Open Source compiled using MinGW is available on the Libraries and Tools page.

Environment Settings

When you install command line tools, such as MinGW, or GnuWin32 tools, you have to tell the command line interpreter where to find them; this is usually accomplished by adding the appropriate directory names to the PATH variable in your environment. Typically, it is your responsibility to do this; please do not expect the installer, (if you used one), to do it for you.

Warning: Adding entries to the PATH is normally benign. However, if you delete, you may mess up your PATH string, and you could seriously compromise the functioning of your computer. Please be careful.

  1. Right-click on "My Computer" and select "Properties".
  2. Click Advanced -> Environment Variables.
  3. In the box entitled "System Variables" scroll down to the line that says "PATH" and double-click the entry.
  4. You will be presented with a dialog box with two text boxes, the bottom text box allows you to edit the PATH variable. It is very important that you do not delete the existing values in the PATH string, this will cause all sorts of problems for you!
  5. Scroll to the end of the string and at the end add ";<installation-directory>\bin". Here <installation-directory> is the full absolute path name of the installation directory; if you accepted the defaults when installing tar and gzip, then for these, it will (probably) be C:\Program Files\GnuWin32, while for MinGW it will be C:\MinGW\bin, (if you kept to the recommended default installation directory). Don't forget the semicolon; this separates the entries in the PATH.
  6. press OK -> OK -> OK and you are done.

Re: HOWTO Install the MinGW (GCC) Compiler Suite

I installed using the process BUT this release is quite old. The gcc.gnu.org page suggests current stable release is 4.4 while the MinGW installer installs 3.4. Also this installer has g77 which is no longer a part of GNU compiler suite, its replaced by fortran95.

Thanks for your kindness for the MinGW compilers suite :)

Re: HOWTO Install the MinGW (GCC) Compiler Suite

Use the MinGW installer to get everything set up in the proper directories. Then if you want version 4.4, download gcc-full-4.4.0-mingw32-bin-2.tar.lzma from the MinGW Sourceforge download page. You can decompress and unarchive using 7za from the 7zip web site. For instance, download the file to the c:\mingw directory, cd to that directory and then type:

   7za x gcc-full-4.4.0-mingw32-bin-2.tar.lzma 

   7za x gcc-full-4.4.0-mingw32-bin-2.tar

This should update your MinGW compiler suite. If you're using msys, there may be some other files you'll want to update as well.

Re: HOWTO Install the MinGW (GCC) Compiler Suite

i have to install MinGW in my windows system.I am using MinGW-5.1.4 and i run the MinGW-5.1.4.Exe,after that i select custom from the dropdown box,and then, l selected g++ compiler,g77 compiler and MinGW Make only.Destination folder like C:\MinGW.This is correct way to install MinGW.Please help me how to install MinGW in the windows.I am using Windows XP.

Regards
Sham

Re: HOWTO Install the MinGW (GCC) Compiler Suite

Download MinGW automated installer from http://sourceforge.net/project/showfiles.php?group_id=2435

Run it and choose options as per needed. It would install everything right. Then add C:\MinGW\bin to you PATH variable.

More detail is available on this web site if you care to search.

Re: HOWTO Install the MinGW (GCC) Compiler Suite

Is there a way to install MinGW with objC garbage collector enabled ?

Re: HOWTO Install the MinGW (GCC) Compiler Suite

MinGW automated installer does not let me select the mirror for downloading files.

This cause very slow in downloading and installing MinGW.

Please update it.

Re: HOWTO Install the MinGW (GCC) Compiler Suite

keith's picture

You can set a preferred mirror in your own SourceForge user preferences. The installer uses whatever you have set there, with SF's automatic mirror selection as fallback. No update is necessary.

Re: HOWTO Install the MinGW (GCC) Compiler Suite

Is there a plan or guide for users who need to install MinGW to the "Program Files" or "AppData" directories? MS is becoming more hard line about installs that reside outside of their standard locations.

Re: HOWTO Install the MinGW (GCC) Compiler Suite

keith's picture

So, Microsoft own your computer, do they?

It isn't their right to tell you how you must deploy your hardware. The canonically correct place to install MinGW is C:\MinGW, but you may move it anywhere else that you prefer, subject to the caveat that you must avoid path names with embedded spaces. If Microsoft tell you they can't allow you to accommodate that, tell them where to get off!

Re: HOWTO Install the MinGW (GCC) Compiler Suite

The MinGW installer is great, both for initial installs and for updates. But would it be possible to add the gdb debugger to the list of things it (optionally) installs/updates? Surely a debugger is a pretty essential component?

Peter

Re: HOWTO Install the MinGW (GCC) Compiler Suite

Is it correct that the MinGW download page link at the start of the Manual Installation instructions given above points to the MinGW Utilities: TclTk download page? Is the TclTk package a pre-requisite of the MinGW Compiler Suite?

Re: HOWTO Install the MinGW (GCC) Compiler Suite

keith's picture

No, and certainly not. I've corrected the reference; thanks for the heads-up.

Re: HOWTO Install the MinGW (GCC) Compiler Suite

Is there a way to install MinGW with objC garbage collector enabled ?

Thanks

Re: HOWTO Install the MinGW (GCC) Compiler Suite

Hi,

I am not able to get these ir entries ,w hat are they supposed to do??

=======================

ren dir dir.binutils
cd ..
..
.cd info
copy dir dir.gcc
copy dir+dir.binutils

========

kindly elaborate!!

Sandeep

Re: HOWTO Install the MinGW (GCC) Compiler Suite

keith's picture

Why? Already asked, and answered. If you opened your eyes, and read the comment immediately below, you would have had no need to ask again! Indeed, it's already elaborated, in the notes following the relevant instruction, within the article itself!

A file is missing.

The copy I got of <binutils-2.19.1-mingw32-bin.tar.gz> from this site does not include a file called <dir>. Is that file supposed to always be produced by <tar.exe>? I used <bsdtar.exe> because that is what I got from <http://gnuwin32.sourceforge.net/packages/tar.htm>. Is that causing the problem? What is that file used for? Is it really important?

Re: A file is missing.

keith's picture

Nope. That file should never be distributed; see my earlier comment to this same article, and this bug report.

Re: HOWTO Install the MinGW (GCC) Compiler Suite

and so
when i compile gcc doesn't create e .exe with the same name but a file called 'a.exe'
Ps
i ve window XP

Re: HOWTO Install the MinGW (GCC) Compiler Suite

keith's picture

This comment is off-topic for this article; please use the mailing list.

For completeness here: this is correct behaviour -- default executable name is a.exe for all compilations. If you want something else, you must say so explicitly, by using the -o exename option, e.g.

gcc -o foo foo.c

will create an executable called foo.exe.

HOWTO Install the MinGW (GCC) Compiler Suite

i ve installed MinGW with Automated (GUI) Installer.
on internet someone says to di this in enviroment setting:

Nome: INCLUDE
Valore: C:\MinGW\include

Nome: LIB
Valore: C:\MinGW\lib

Nome: MINGW
Valore: C:\MinGW

Nome: PATH
Valore: C:\MinGW\bin

is it the truth?

Re: HOWTO Install the MinGW (GCC) Compiler Suite

keith's picture

The last is correct. The first three are unnecessary.

Re: HOWTO Install the MinGW (GCC) Compiler Suite

Require assistance.
0) I installed Mingw-5.1.4 "automatically" to C:\Documents and Settings\ouid\MinGW.
1) For some reason it didn't update my env. variables.
I added "C:\Documents and Settings\ouid\MinGW\bin\" to env.tables
2) I created file a.c with "int main(){}"
3) I try: C:\Documents and Settings\ouid\c>gcc a.c
gcc: installation problem, cannot exec `cc1': No such file or directory
4) I added "C:\Documents and Settings\ouid\MinGW\libexec\gcc\mingw32\3.4.5\" to %PATH%.
5) I try: C:\Documents and Settings\ouid\c>gcc a.c
ld: crt2.o: No such file: No such file or directory
After some googling I found that setting GCC_EXEC_PREFIX to lib/ directory will resolve the issue.
6) I added GCC_EXEC_PREFIX="C:\Documents and Settings\ouid\MinGW\lib\" to env variables
7) I try: C:\Documents and Settings\ouid\c>gcc a.c and it does NOTHING
but freezes up for eternity.
8) Google said that dropping everything from path and using full pathnames like
C:\Documents and Settings\ouid\bin\gcc a.c works. And it's really work. But this is workaround looks too stupid for obvious reasons. Well, creating gcc.bat thal calls C:\Documents and Settings\ouid\bin\mingw32-gcc and putting it in %PATH% works, but this workaround sucks.

What can be done to run gcc from %PATH%ed directory properly?

PS. My os is windows xp.

Re: HOWTO Install the MinGW (GCC) Compiler Suite

keith's picture

Please review the updated version of the instructions. In particular, note the time honoured advice about path names which include spaces; (since you've used such a degenerate installation path, you should uninstall, and then install again, properly).

Also note the section about setting up your environment; you should not need to add anything else, but you must add C:\MinGW\bin to the PATH variable.

Re: HOWTO Install the MinGW (GCC) Compiler Suite

Not sure if this is the right place for this. Attempted to install MinGW for the first time, via the installer (today 27 feb 2009 around 22 GMT), install dir C:\MinGW. Got as far as un-gz'ing / un-tar'ing the g++ tarball:

Extracting gcc-g++-3.4.5-20060117-3.tar.gz
untgz::extract -d 'C:\MinGW' -z 'C:\Users\root\Desktop\gcc-g++-3.4.5-20060117-...
tgz_extract: bad header checksum
Error: Failure reading from tarball.

Downloaded installer again, compared fc /b, same.

Ran again, same error.

Found where it keeps the *.tar.gz, removed offending one to force re-download, same error.

Ran installer from C:\tmp rather than Desktop to force shorter paths, same error.

Ran again with all same options except without g++ this time, installed fine. I think. Not tried yet.

Really seems to be that *g++*.tar.gz then.

--marijke

PS 32-bit Windows Vista Home Plus with the latest service packs, Firefox 3.0.6, on a MAXdata (dual core AMD64, 1G ram, 80G partition with 68G free).

Re: HOWTO Install the MinGW (GCC) Compiler Suite

keith's picture

1) This is not the right place for this sort of discussion; you should use the mailing list, (and you should first search the archives:

http://search.gmane.org/?query=g%2B%2B+download&group=gmane.comp.gnu.mingw.user

and review associated threads (click on an article reference link, then on the `subject' link in the article view)).

2) The problem results from SourceForge themselves having broken the `files' page scripting, (which is common to all their hosted projects), such that it chokes on files with `+' signs, (or possibly explicitly `++'), within the name, and fails to generate a valid download mirror URL. It has been reported:

https://sourceforge.net/tracker/?func=detail&aid=2630791&group_id=1&atid=200001

No fix has yet been forthcoming. Bug SF about it; only they can fix it; we are powerless to resolve it.

Re: HOWTO Install the MinGW (GCC) Compiler Suite

Okay, so i've now read burton's msg of 22 feb and the manual workarounds, in the Getting Started | MinGW wiki (how do you link to another thread?)

So consider this a heads-up that it's still broken. Must put lots of new people off. And i can't say i now understand *what* exactly the error with this one file is...

Re: HOWTO Install the MinGW (GCC) Compiler Suite

do not install MinGW into the same path as MSYS

Re: HOWTO Install the MinGW (GCC) Compiler Suite

I´m missing the gdb installation package from this HOWTO. Actually its missing in the automated installer as well. It would be nice if the automated installer would notify the user what version of the package it will download/install if you choose previous, current or candidate package.

Re: HOWTO Install the MinGW (GCC) Compiler Suite

While the gzip and tar commands are useful, it would be useful to state the directory name explicitly for those like me that choose to manually create the info-dir directories another way. It was not clear whether the directory needed to be named 'dir' or 'info-dir' or 'dir.cc', etc, without crinkling the brow. Thanks for all this, btw...

Re: HOWTO Install the MinGW (GCC) Compiler Suite

keith's picture

In the context of info, `dir' is a file, not a directory (in the file system sense); it is always called `dir', and is found in a directory in the `INFOPATH'. Please see the comment below, which I added in August 2008, concerning the proper way to manage info's `dir' files.

Re: HOWTO Install the MinGW (GCC) Compiler Suite

I propose merging these instructions into the existing instructions on the Getting Started page. I don't see the sense in having automated installation described on the Getting Started page and manual installation described in a HOWTO.

Re: HOWTO Install the MinGW (GCC) Compiler Suite

keith's picture

I can see a practical reason for keeping them segregated.

The `Getting Started' really should be just a `Quick Start' guide, for new users. Such users really don't want to be overwhelmed by too much detail -- they just want to get up and running with a minimum of fuss.

OTOH, more experienced users may appreciate more detailed information. Such users may wish to maintain multiple installations, at different version levels for example, or to incrementally upgrade an existing installation, as newer components are released. (They may wish to do this directly, *without* having to go through the pain of running a nasty wizard style installer, which is really best suited to first time installation only -- ok, that's just my opinion of them, but I'm sure I'm not alone). The detailed information needed to facilitate this doesn't really belong in a `Getting Started' guide; it deserves a more extensive `HOWTO' document.

I'd actually suggest *simplifying* the `Getting Started' page, (to make it a real `Quick Start' guide), and keep this `HOWTO' as a detailed reference. Include a link to here, on the `Getting Started' page, for users wanting more detail, and if necessary merge any content removed from `Getting Started' in here.

Re: HOWTO Install the MinGW (GCC) Compiler Suite

keith's picture

Re the concatenation of info/dir files:

More recent versions of the distributed packages should not even provide the precompiled dir files. These are only useful for users who have an info viewer installed, which basically means those who use MSYS[1].

For those who do use MSYS, you will have both the info viewer, and also the supporting makeinfo and install-info tools; the correct way to build the dir file is to run each of the supplied *.info files through install-info:

cd info;
for file in *.info; do install-info $file dir; done

[1] Yes, I know GnuWin32 also provides an info package; last time I looked, their viewer didn't work. Cygwin also has it, and that works, but uses the dir files installed in the Cygwin tree. It is possible that an alternative native implementation is available elsewhere; if so, it should also provide an install-info tool.

Site Status

Site maintenance completed May 25th, 2012 at 12:38 UTC