Есть ли способ узнать, какая версия gcc используется командой make
? На моем компьютере установлено 5 версий gcc: от 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
Откройте терминал и тип:
gcc --version
, Если это не версия gcc, Вы хотите, может изменить значение по умолчанию gcc версия с помощью эти update-alternatives
команда для определения, на какой фактический файл ссылается родовое название, например, на какой фактический файл ссылаются gcc
. Для получения дополнительной информации см. ответы на этот вопрос: , Как изменить компилятор GCC по умолчанию в Ubuntu? .
Make-файлы часто используют неявные правила скомпилировать вещи, вместо того, чтобы определить компилятор конкретно. В этом случае конвенция (и значение по умолчанию) состоит в том, чтобы использовать $(CC)
, который значения по умолчанию к cc
. Таким образом, если Вы тип cc --version
, Вы будете видеть то, что Make-файлы используют по умолчанию.
Make-файл может переопределить определение CC
хотя, или не использование $(CC)
вообще. Но конвенция (как это в autoconf для configure
сценарии, также).
Также см.: https://stackoverflow.com/questions/2969222/make-gnu-make-use-a-different-compiler
make
только делает то, что Make-файл говорит этому делать. Большинство Make-файлов будет использовать значение по умолчанию gcc
команда, таким образом, ответ karel будет применяться в большинстве случаев, но необходимо знать, что нет ничего, что вынуждает make
использовать GCC по умолчанию. (И в этом отношении, make
может использоваться для большого количества вещей помимо компиляции C, таким образом, она даже не могла бы использовать GCC вообще.)