4.变量和不同的赋值方式

第一讲:
1)makefile中支持程序设计语言中变量的概念
2)makefile中的变量只代表文本数据(字符串)         就是只有字符串类型
3)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)"
输出:x=>new,y=>foob

递归赋值(=)
 赋值操作可能影响多个其它变量
 所有与目标变量相关的其它变量都将受到影响
 x:=foo
 y:=$(x)b
 x:=new
 .PHONY:test
 test:
  @echo"x=>$(x)"
  @echo"y=>$(y)"
输出:x=>new,y=>newb
 
条件赋值(?=)
 如果变量未定义,使用赋值符号中的值定义变量
 如果变量已经定义,赋值无效
 x:=foo
 y:=$(x)b
 x?=new
 .PHONY:test
 test:
  @echo"x=>$(x)"
  @echo"y=>$(y)"
输出:x=>foo,y=>foob
 
追加赋值(+=)
 原变量值之后加上一个新值
 原变量值与新值之间由空格隔开
 x:=foo
 y:=$(x)b
 x+=$(y)
 .PHONY:test
 test:
  @echo"x=>$(x)"
  @echo"y=>$(y)"
输出:x=>foo foob,y=>foob
 
第三讲:
实验验证
posted @ 2020-04-07 10:23  白驼山庄庄主  阅读(161)  评论(0编辑  收藏  举报