What version of GCC is used by the make command?

Is there any way to know what version of gcc is used by the make command? I have 5 versions installed of gcc on my computer: by dpkg -l | grep gcc

ii  gcc                                                   4:4.8.2-1ubuntu6                                    i386         GNU C compiler
ii  gcc-4.6                                               4.6.4-6ubuntu2                                      i386         GNU C compiler
ii  gcc-4.6-base:i386                                     4.6.4-6ubuntu2                                      i386         GCC, the GNU Compiler Collection (base package)
ii  gcc-4.8                                               4.8.2-19ubuntu1                                     i386         GNU C compiler
ii  gcc-4.8-base:i386                                     4.8.2-19ubuntu1                                     i386         GCC, the GNU Compiler Collection (base package)
ii  gcc-4.9-base:i386                                     4.9-20140406-0ubuntu1                               i386         GCC, the GNU Compiler Collection (base package)
ii  libgcc-4.8-dev:i386                                   4.8.2-19ubuntu1                                     i386         GCC support library (development files)
ii  libgcc1:i386                                          1:4.9-20140406-0ubuntu1                             i386         GCC support library

Solution 1:

Open the terminal and type:

gcc --version  

If that's not the version of gcc you want can change the default gcc version using the update-alternatives command to determine which actual file is referenced by a generic name, for example which actual file is referenced by gcc. For more information see the answers to this question: How to change the default GCC compiler in Ubuntu?.

Solution 2:

Makefiles often use implicit rules to compile things, rather than defining the compiler specifically. In this case, the convention (and default) is to use $(CC), which defaults to cc. So if you type cc --version, you'll see what Makefiles use by default.

The Makefile may override the definition of CC though, or not use $(CC) at all. But is the convention (as it is within autoconf for configure scripts, too).

Also see: https://stackoverflow.com/questions/2969222/make-gnu-make-use-a-different-compiler

Solution 3:

make only does whatever the Makefile tells it to do. Most Makefiles will use the default gcc command, so karel's answer applies in most cases, but you should be aware that there's nothing that forces make to use the default GCC. (And for that matter, make can be used for a lot of things besides compiling C, so it might not even use GCC at all.)