/ redis的/ DEPS / hiredis /生成文件
CC:=$(shell sh -c 'type $(CC) >/dev/null 2>/dev/null && echo $(CC) || echo gcc')
OPTIMIZATION?=-O3
WARNINGS=-Wall -W -Wstrict-prototypes -Wwrite-strings
DEBUG?= -g -ggdb
编译器选项意味着什么?和'?'后跟'= -03'?
答案 0 :(得分:2)
代表OPTIMIZATION?=-O3
如果尚未定义变量OPTIMIZATION
,则OPTIMIZATION的值为-O3;
另一方面,如果已定义变量OPTIMIZATION
,则会跳过此语句,OPTIMIZATION
将保留其先前的值
答案 1 :(得分:0)
GNU make manual有?=
运算符
变量有另一个赋值运算符'?='。这是 称为条件变量赋值运算符,因为它只有 如果变量尚未定义,则会产生影响。
所以,这句话
OPTIMIZATION?=-O3
表示如果已定义OPTIMIZATION
,请忽略它,如果没有,请定义它并指定值-03
。
编译器标志-03
表示在优化级别3编译。