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