c++cmingw

Which MinGW file to use as a C++ compiler


I have just installed MinGW and in the bin folder I can see 7 .exe files that compile my program:

  1. c++.exe
  2. g++.exe
  3. mingw32-c++.exe
  4. mingw32-g++.exe
  5. gcc.exe
  6. mingw32-gcc.exe
  7. mingw32-gcc-4.4.1.exe

My small program (testprog.cpp) compiles correctly with each of them; the a.exe file is generated in the bin folder and it runs correctly.

What's the difference between them and which one should I use? Also, what can I do to change the name of the output file from a.exe to testprog.exe automatically upon each successful compile?


Solution

  • It's quite possible that they are all the same; either exact copies or symbolic links to one another. Try using the --version flag on each to see what you've got. On my MingGW installation here, each of those binaries differs (checked with diff), but they all output the same version information (with the exception of the first bit, which is the filename):

    gcc.exe (GCC) 3.4.5 (mingw-vista special r3)
    Copyright (C) 2004 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    

    Use the -o flag to change the output file name:

    gcc -o testprog.exe testprog.cpp