Existe-t-il un moyen de savoir quelle version de gcc est utilisée par la commande make
? J'ai 5 versions installées de gcc sur mon ordinateur: par 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
Ouvrez le terminal et tapez:
gcc --version
Si ce n'est pas la version de gcc souhaitée, vous pouvez modifier la version par défaut de gcc à l'aide de la commande update-alternatives
afin de déterminer le fichier réel référencé par un nom générique, par exemple le fichier référencé par gcc
. Pour plus d'informations, voir les réponses à cette question: Comment changer le compilateur GCC par défaut dans Ubuntu? .
Les makefiles utilisent souvent des règles implicites pour compiler des éléments, plutôt que de définir le compilateur de manière spécifique. Dans ce cas, la convention (et la valeur par défaut) consiste à utiliser $(CC)
, dont la valeur par défaut est cc
. Donc, si vous tapez cc --version
, vous verrez ce que Makefiles utilise par défaut.
Le Makefile peut cependant remplacer la définition de CC
ou ne pas utiliser $(CC)
du tout. Mais c’est la convention (comme dans autoconf également pour les scripts configure
).
Voir aussi: https://stackoverflow.com/questions/2969222/make-gnu-make-use-a-different-compiler
make
ne fait que ce que le Makefile lui dit de faire. La plupart des Makefiles utiliseront la commande gcc
par défaut. La réponse de karel s’applique dans la plupart des cas, mais vous devez savoir qu’il n’ya rien qui oblige make
à utiliser le paramètre GCC par défaut. (Et d'ailleurs, make
peut être utilisé pour beaucoup de choses en plus de la compilation de C, de sorte qu'il n'utilise peut-être même pas du tout GCC.)