本文将针对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