4.变量和不同的赋值方式
第一讲:
1)makefile中支持程序设计语言中变量的概念
2)makefile中的变量只代表文本数据(字符串) 就是只有字符串类型
3)makefile中的变量名规则
变量名可以包含字符,数字,下划线
不能包含":","#","="或""
变量名大小写敏感
2)makefile中的变量只代表文本数据(字符串) 就是只有字符串类型
3)makefile中的变量名规则
变量名可以包含字符,数字,下划线
不能包含":","#","="或""
变量名大小写敏感
变量的定义和使用
cc:=gcc
TARGET:=hello.out
$(TARGET):func.o main.o
$(cc) -o $(TARGET) func.o main.o
第二讲:
makefile中变量的赋值方式
简单赋值(:=)
递归赋值(=)
条件赋值(?=)
追加赋值(+=)
cc:=gcc
TARGET:=hello.out
$(TARGET):func.o main.o
$(cc) -o $(TARGET) func.o main.o
第二讲:
makefile中变量的赋值方式
简单赋值(:=)
递归赋值(=)
条件赋值(?=)
追加赋值(+=)
简单赋值(:=)
程序设计语言中的通用的赋值方式
只针对当前语句的变量有效
x:=foo
y:=$(x)b
x:=new
.PHONY:test
test:
@echo"x=>$(x)"
@echo"y=>$(y)"
test:
@echo"x=>$(x)"
@echo"y=>$(y)"
输出:x=>new,y=>foob
递归赋值(=)
赋值操作可能影响多个其它变量
所有与目标变量相关的其它变量都将受到影响
x:=foo
y:=$(x)b
x:=new
.PHONY:test
test:
@echo"x=>$(x)"
@echo"y=>$(y)"
test:
@echo"x=>$(x)"
@echo"y=>$(y)"
输出:x=>new,y=>newb
条件赋值(?=)
如果变量未定义,使用赋值符号中的值定义变量
如果变量已经定义,赋值无效
x:=foo
y:=$(x)b
x?=new
如果变量未定义,使用赋值符号中的值定义变量
如果变量已经定义,赋值无效
x:=foo
y:=$(x)b
x?=new
.PHONY:test
test:
@echo"x=>$(x)"
@echo"y=>$(y)"
test:
@echo"x=>$(x)"
@echo"y=>$(y)"
输出:x=>foo,y=>foob
追加赋值(+=)
原变量值之后加上一个新值
原变量值与新值之间由空格隔开
x:=foo
y:=$(x)b
x+=$(y)
原变量值之后加上一个新值
原变量值与新值之间由空格隔开
x:=foo
y:=$(x)b
x+=$(y)
.PHONY:test
test:
@echo"x=>$(x)"
@echo"y=>$(y)"
test:
@echo"x=>$(x)"
@echo"y=>$(y)"
输出:x=>foo foob,y=>foob
第三讲:
实验验证
实验验证