makefile变量的赋值运算和环境变量

(1)=

含义:对变量赋值,当对变量解析时,解析的是最后一次赋值的变量

A=ab
B=$(A) cd
A=cd
all:
echo $(B)

makefile变量的赋值运算和环境变量

(2):=

含义:对变量赋值,当对变量解析时,解析的是当前赋值的变量,与之后的变量修改无关。
A=ab
B:=$(A) cd
A=cd
all:
echo $(B)
makefile变量的赋值运算和环境变量

(3)?=

含义:当已经对变量赋值过了,就不执行?=赋值运算,如果没有对变量进行赋值就执行?=赋值运算。
A=ab
A?=cd
B?=cd
all:
echo $(A)
echo $(B)
makefile变量的赋值运算和环境变量

(4)+=

含义:在原有的变量后面加上新的变量
A=ab
A+=cd
all:
echo $(A)

makefile变量的赋值运算和环境变量

(6)环境变量

环境变量和普通变量的区别:环境变量类似于整个工程中所有Makefile之间可以共享的全局变量,而普通变量只是当前本Makefile中使用的局部变量。

使用:通过export导出环境变量
CC = gcc
export PATH

all:
echo $(CC)

makefile变量的赋值运算和环境变量

(7)环境变量传参

make CC=linux-gcc
makefile变量的赋值运算和环境变量