makefile(02) _变量

  

4。变量与赋值

  

4.1。变量

  

Makefile中支持程序设计语言中变量的概率,但没有变量类型,只代表文本数据;
变量命名规则:变量可以包含字符,数字,下划线,单不能包含“:”、“#”、“=?“”,变量名大小写敏感。
变量的定义和使用:
 Makefile(02) _变量

  

4.2。赋值

  

Makefile中有4中变量赋值方式:

  

4.2.1。准备简单赋值(=)

  

程序设计语言中的通用赋值方式,只针对当前语句有效,等价于C语言中的赋值。建议无特殊要求时使用简单赋值。

  
 <代码> x:=foo
  y:=$ b (x)
  x:=新
  
  测试:
  @echo“x=比;$ (x) "
  @echo " y=比;$ (y) "  
  

输出结果:
 makefile(02) _变量

  

4.2.2。递归赋值(=)

  

赋值操作可能影响多个其它变量,所有与目标变量相关的其他变量都会受到影响。

  
 <代码> x=foo
  y=$ b (x)
  x=新
  
  测试:
  @echo“x=比;$ (x) "
  @echo " y=比;$ (y) "  
  

输出结果:
 makefile(02) _变量”> <br/>注意:如果不是必要请尽可能不要使用递归赋值,这里的赋值号完全不等价与C语言中的赋值号。</p>
  <h4> 4.2.3。条件赋值(?=)</h4>
  <p>如果变量未定义,使用赋值符号中的值定义变量,如果已经定义,赋值无效。</p>
  <pre> <代码> x:=foo
  y:=$ b (x)
  x ?=新
  
  测试:
  @echo“x=比;$ (x)   

输出结果:
 makefile(02) _变量

  

4.2.4。追加赋值(+=)

  

原变量值后加一个新值,原变量与新值之间由空格隔开

  
 <代码> x:=foo
  y:=$ b (x)
  x +=new
  
  测试:
  @echo“x=比;$ (x) "
  @echo " y=比;$ (y) "  
  

输出结果:
 makefile(02) _变量

  

5。预定义变量的使用

  

在Makefile中存在一些预定义的变量,主要分为两类:自动变量和特殊变量。

  

5.1。自动变量

  

$ @当前规则中触发命令被执行的目标
$ ^当前规则中的所有依赖
$ & lt;当前规则中的第一个依赖
自动变量的使用:

  
 <代码>。假的:所有的第一第二第三
  
  :第一第二第三
  @echo " \ $ $ @=比;$ @”
  @echo " $ $ ^=比;$ ^ "
  $ $ & lt @echo”;=比;$ & lt;”
  
  firtst:
  第二:
  第三: 
  

输出结果:
 makefile(02) _变量”> <br/> <强>注意:</强> <br/> 1。“$”符号在makefile中有特殊含义,当打印其字面量时需要加上美元进行转义<br/> 2。“$ @”则需要加上\ $进行转义</p>
  <h3> 5.2。特殊变量</h3>
  <p> $(使)当前使解释器的文件名<br/>美元(MAKECMDGOALS)命令行中指定的目标名,(使的命令行参数)<br/> (MAKEFILE_LIST)使美元需要要处理的makefile文件列表,注意当前makefile的文件名总是位于列表最后,文件名之间使用空格分隔。<br/> (MAKE_VERSION)当美元前使解释器的版本<br/> (CURDIR)当美元前使解释器的工作目标<br/> (.VARIABLES)美元所有已经定义的变量名和列表(预定义变量和自定义变量)<br/> (RM)美元RM - f <br/>通常我们会打印美元(.VARIABLES)查看当前操作系统所支持的自定变量,然后对照使手册(可从官网下载:http://www.gnu.org/software/make/manual/make.html),查看每个变量的意义。</p>
  <pre> <代码>。假的:所有的第一第二第三测试
  
  所有:
  @echo   

输出结果:
 makefile(02) _变量

  

6。变量的高级主题——上

  

6.1。变量值的替换

  

但是。后缀替换

makefile(02) _变量