本文将针对Make的基本语法进行讲解
运算符
赋值运算符
Make 中有:=
、?=
、+=
(追加)以及=
四个赋值运算符,其中=
和?=
比较常用,这里总结一下两者的区别:
- 对于
=
,变量的值将会是整个Makefile中最后被指定的值,例如:
1 | x = foo |
最终,y
的值是xyz bar
- 对于
:=
,变量的值决定于它在Makefile中的位置,而不是整个Makefile展开后的值
1 | x := foo |
最终,y
的值为foo bar
变量符号$
单独的$
$的功能比较多,这里一一进行总结,首先是使用变量
1 | OBJECTS=main.o hello.o factorial.o |
$@、$<以及$\^1
1 | all: library.cpp main.cpp |
$@
evaluates toall
,即目标$<
evaluates tolibrary.cpp
(第一个文件)$^
evaluates tolibrary.cpp main.cpp