我安装了两个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?
答案 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的作者将CPP
与CXX
混淆,或者makefile确实使用CPP
来生成依赖关系,这在过去十年左右是不必要的。有关详细信息,请参阅this。