make 命令使用哪个版本的 GCC?

make 命令使用哪个版本的 GCC?

有什么方法可以知道命令使用的 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

答案1

打开终端并输入:

gcc --version  

如果这不是您想要的 gcc 版本,您可以使用命令更改默认的 gcc 版本,以update-alternatives确定通用名称引用了哪个实际文件,例如 引用了哪个实际文件gcc。有关更多信息,请参阅此问题的答案:如何更改 Ubuntu 中的默认 GCC 编译器?

答案2

Makefile 通常使用隐式规则来编译内容,而不是专门定义编译器。在这种情况下,惯例(也是默认)是使用$(CC),默认为cc。因此,如果您输入cc --version,您将看到 Makefile 默认使用的内容。

Makefile 可能会覆盖 的定义CC,或者根本不使用$(CC)。但这是惯例(因为在configure脚本的 autoconf 中也是如此)。

另请参阅:https://stackoverflow.com/questions/2969222/make-gnu-make-use-a-different-compiler

答案3

make只执行 Makefile 要求它执行的操作。大多数 Makefile 都会使用默认gcc命令,因此 karel 的答案在大多数情况下都适用,但您应该知道,没有什么可以强制make使用默认 GCC。(而且,make除了编译 C 之外,它还可以用于很多事情,因此它甚至可能根本不使用 GCC。)

相关内容