Gcc 生成文件中的CC?=是什么意思?
我有一个C程序的Makefile,它有声明Gcc 生成文件中的CC?=是什么意思?,gcc,makefile,g++,cc,Gcc,Makefile,G++,Cc,我有一个C程序的Makefile,它有声明 CC?=gcc 改成 CC?=g++ CC=g++ 不能用g++编译。改成 CC?=g++ CC=g++ 它使用的是g++ 我想知道接线员是干什么的?我的猜测是,它通过查看环境变量来决定使用哪个编译器,如果没有设置,那么使用gcc?任何可以清除此项的人?只有在尚未设置变量时,?=运算符才会设置该变量:info make→ *使用变量→ *设置来自: 还有另一个赋值运算符 对于变量,`?='。这就是所谓的 条件变量赋值 运算符,因为它只有一个
CC?=gcc
改成
CC?=g++
CC=g++
不能用g++编译。改成
CC?=g++
CC=g++
它使用的是g++
我想知道接线员是干什么的?我的猜测是,它通过查看环境变量来决定使用哪个编译器,如果没有设置,那么使用gcc?任何可以清除此项的人?只有在尚未设置变量时,
?=
运算符才会设置该变量:info make
→ <代码>*使用变量→ <代码>*设置来自:
还有另一个赋值运算符
对于变量,`?='。这就是所谓的
条件变量赋值
运算符,因为它只有一个
如果变量尚未被激活,则会产生影响
定义本声明:
FOO ?= bar
与此完全相同(参见
原点函数):
可能CC
已定义为gcc
,因此CC?=g++
不会覆盖现有的gcc
如果尚未设置,则“?”运算符表示已设置
因此,如果CC已经为空,CC?=将设置它。如果CC已经包含某些内容,则不会
来源:正如其他人提到的,它可能已经预定义 在GNU上,您可以从不包含
Makefile
的目录中查看使用make-p
定义的内容
该文件记录在:
通常,默认情况下,CC=CC
。然后在Ubuntu 14.04上,例如,cc
通常是指向gcc
的符号链接
要同时禁用所有变量,请参见:目前似乎不可能