Makefile学习⑨:Makefile中的等号和shell命令的使用
Makefile中的等号
“=”
普通赋值符号,命令格式如下
变量=值
注意:变量的最终值为该文件中的最后进行赋值操作所赋的值。
(不管在当前文件的何处进行赋值,在使用该值时始终会取最后一次赋值的结果)
举例:
“:=”
“:=“表示赋予当前位置的值,区别于普通”=”
变量:=值
举例:
可以看出,STR_2和STR_4的值不一样,原因是因为使用等号的时候会将STR_1的最终赋值结果带入STR_2的运算中,但是使用":="则会在运算时带入STR_3当前的值
“?=”
"?="表示若当前变量无值则进行赋值
变量?=值
举例:
因为一开始TATGET被赋予了1的初始值,因此第五行在执行的时候判断已有初始值则不再进行赋值操作。
“+=”
"+="表示将值追加在原有值的后方,注意追加前后会自动补空格
变量+=值
举例:
Makefile中shell命令的使用
在Makefile的编写过程中,有很多时候需要使用shell命令进行文件路径的获取或者系统状态的读取。
命令格式:
变量=$(shell 命令)
例如:
A=$(shell ls -l)
B=$(shell pwd)
show:
@echo $(A)
@echo $(B)
调试结果: