makefile是一种程序设计语言,因此,它也支持程序设计语言中变量的概念,但是makefile中的变量是没有类型的,makefile中的变量只代表文本数据(字符串),makefile中的变量命名规则和C语言中类似,具体如下:
 1、变量名可以包含字符、数字、下划线。
 2、不能包含":"、"#"、"="或" "。
 3、变量名大小写敏感。
 
 makefile中变量的定义和使用具体如下:
 其中CC变量赋值为gcc字符串,TARGET赋值为hello.out字符串,变量的使用和C语言中有所不同,需要用$(变量名)的形式来引用变量。上图的规则中目标为$(TARGET),代表的就是hello.out,CC变量同理。
 makefile中的目标或者依赖或者命令中的参数被使用到了多次,这时可以将它们定义成变量,在这些目标、依赖、命令参数等需要修改的时候,只需要更改变量的定义即可,而无须修改makefile中的每一处的引用。这种做法类似于C语言中的宏定义。
 
 makefile中变量的赋值方式有如下几种:
 1、简单赋值(:=)
 2、递归赋值(=)
 3、条件赋值(?=)
 4、追加赋值(+=)
 
这几种赋值方式的具体表现如下:
1、简单赋值
 
2、递归赋值
 
3、条件赋值,变量就算定义为空值(x :=),也算是定义了,下面的条件赋值,依然无效。
   
4、追加赋值
 
 
 
 makefile中的变量无须定义就可以直接引用,只不过此时引用变量的值为空。
 
 
参考如下:
    狄泰软件教程与课件
    GUN make手册
    专业嵌入式软件开发
 
 
 
 
 
 



posted on 2018-02-04 16:21  周伯通789  阅读(489)  评论(0编辑  收藏  举报