makefile变量的赋值运算和环境变量
(1)=
含义:对变量赋值,当对变量解析时,解析的是最后一次赋值的变量
A=ab
B=$(A) cd
A=cd
all:
echo $(B)
(2):=
含义:对变量赋值,当对变量解析时,解析的是当前赋值的变量,与之后的变量修改无关。
A=ab
B:=$(A) cd
A=cd
all:
echo $(B)
(3)?=
含义:当已经对变量赋值过了,就不执行?=赋值运算,如果没有对变量进行赋值就执行?=赋值运算。
A=ab
A?=cd
B?=cd
all:
echo $(A)
echo $(B)
(4)+=
含义:在原有的变量后面加上新的变量
A=ab
A+=cd
all:
echo $(A)
(6)环境变量
环境变量和普通变量的区别:环境变量类似于整个工程中所有Makefile之间可以共享的全局变量,而普通变量只是当前本Makefile中使用的局部变量。
使用:通过export导出环境变量
CC = gcc
export PATH
all:
echo $(CC)
(7)环境变量传参
make CC=linux-gcc