1. 批注:以 # 开头的即为批注。
2.变量宣告:(有人称之为宏)
注意在,在变量=前后必须要加上空白,而变量名称为大小写相异。利用 MACRO = 来取消该变数。
3 := 语法
注意到,make 会将整个 Makefile 展开后,再决定变数的值。也就是说,变量的值将会是整个 Mackfile 中最后被指定的值。例:
x = foo
y = $(x) bar
x = xyz
# y 的值为 xyz bar
在上例中,y 的值将会是 xyz bar,而不是 foo bar。
您可以利用 := 来避开这个问题。:= 表示变量的值决定于它在 Makefile 中的位置,而不是整个 Makefile 展开后最终的值。
一些常见的自动化变量说明如下:
(1) $@ ——目标文件的名称;
(2) $^ ——所有的依赖文件,以空格分开,不包含重复的依赖文件;
(3) $< ——第一个依赖文件的名称。
示例:
main:main.c sort.o
gcc main.c sort.o -o main
表示为简洁的就是:
main:main.c sort.o
gcc $^ -o $@
- 提问者评价
-
太给力