Makefile语法

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 $@
提问者评价
太给力

Makefile语法

上一篇:微信企业号


下一篇:Java基础[02-Java基础语法](二)