在shell中设置make的GCC版本

时间:2016-10-04 13:51:03

标签: c++ gcc makefile g++

我安装了两个gcc(同样适用于g ++)版本。较新的是默认值:

/usr/bin/gcc      # 4.9.2
/usr/bin/gcc-4.4  # 4.4.7

对于我的make命令,我想使用gcc-4.4 / g ++ - 4.4。

我试过这三个variantes但似乎没有一个工作:

export CC="gcc-4.4"
export CPP="g++-4.4"

export CC=/usr/bin/gcc-4.4
export CPP=/usr/bin/g++-4.4

export gcc=/usr/bin/gcc-4.4
export g++=/usr/bin/g++-4.4

Makefile定义:

# Compiler Options
CC       = gcc
CPP      = g++
LD       = g++

Makefile使用的编译器仍为4.9.2。我怎样才能使用4.4.7?

1 个答案:

答案 0 :(得分:7)

GNU Make manual, 6.10 Variables from the Environment

  

make中的变量可以来自运行make的环境。在启动时查看的每个环境变量都将转换为具有相同名称和值的make变量。但是, makefile中的显式赋值或命令参数会覆盖环境。 (如果指定了-e标志,则环境中的值会覆盖makefile中的赋值。但不建议这样做。)

建议的做法是在make命令行上传递这些变量:

$ make CC=gcc-4.4 CPP=g++-4.4 CXX=g++-4.4 LD=g++-4.4

附注是CXX用于编译C ++代码,而CPP用于预处理。 makefile的作者将CPPCXX混淆,或者makefile确实使用CPP来生成依赖关系,这在过去十年左右是不必要的。有关详细信息,请参阅this