包含 最重要概念、函数、方法等的 make 备忘单。 初学者的完整快速参考。
a.txt: b.txt c.txt
cat b.txt c.txt > a.txt
Makefile
。include
的其它 Makefile
。文件会以 GNUmakefile
(不推荐使用)、Makefile
、makefile
查找目录下的名称。
$ make target -f NAME
我们可以使用 -f NAME
来指定需要编译的文件名
如果文件夹中没有 makefile 文件,只有 main.c 源文件,那么我们可以使用 make main.o
隐式生成链接文件
$ make main.o
# 实际执行: cc -c -o main.o main.c
TARGET: PREREQUISITES
COMMAMD
...
target
: 规则的目标。目标可以是规则的动作(如 clean
等),也可以是目标文件或者最后的可执行文件。prerequisites
: 规则的依赖。生成规则目标文件所需要的文件名列表(通常一个目标依赖于一个或者多个文件)。command
: 规则的命令行。规则要执行的动作(任意的 shell 命令或者在 shell 下执行的程序)。命令需要以 tab 键开头$ make [TARGET ...]
$ make # 没有参数首先运行 TARGET
$ make help # 显示可用目标
$ make dist # 从当前目录制作一个发布存档
$ make check # 无需安装的单元测试
.PHONY: clean
clean:
rm *.o temp
.PHONY
内置命令将排除 clean 文件,不会因为当前目录中因为有 clean 文件而不会不执行 clean 伪目标
clean 从来都是放在文件的最后
makefile 文件的注释与 bash 脚本一致
# 这是一个注释
main.o : main.c
cc -c main.c
\
# 这是一个注释
main.o : main.c
cc -c \
main.c
include
关键字可以把别的 Makefile 包含进来。这样使用 make 运行的时候就会
# makefile
include foo.make
如果你想让 make 不理那些无法读取的文件,而继续执.
-include <filename>