此文编写主要参考韦东山老师教程和《跟我一起写makefile》和正点原子教程
makefile中的变量可以看成有3种变量,即时变量、延时变量、自动化变量,并且为了简化程序也引入了模式规则,下面就对这些变量和模式规则做简单介绍。
1、makefile中的两种简单变量
1、即时变量:
A := xxx # A的值即刻确定,在定义时即确定,其中#为注释。
对于即时变量使用“:=”表示,它的值在定义的时候已经被确定了
2、延时变量
B = xxx # B的值使用到时才确定
对于延时变量使用“=”表示。它只有在使用到的时候才确定,在定义/等于时并没有确定下来。
2、如何使用变量
使用变量的时候使用“$”来引用,如果不想看到命令,可以在命令的前面加上"@"符号,就不会显示命令本身。当我们执行make命令的时候,make这个指令本身,会把整个Makefile读进去,进行全部分析,然后解析里面的变量。常用的变量的定义如下:
:= # 即时变量
= # 延时变量
?= # 延时变量, 如果是第1次定义才起效, 如果在前面该变量已定义则忽略这句
+= #追加, 它是即时变量还是延时变量取决于前面的定义
?=:如果这个变量在前面已经被定义了,这句话就不会起效果
3、变量使用例程
(1)makefile 的变量也就是一个字符串&