Cwww3's Blog

Record what you think

0%

makefile

Makefile由一条或多条规则构成。每条规则格式如下

1
2
<target> : <prerequisites> 
[tab] <commands>

target 表示目标,即要创建的文件(可以是多个 通过空格隔开 通常是文件),除了文件还可以是一个操作的名称,称为伪目标

prerequisites 表示条件,即要创建target所需的文件 (可以是多个 通过空格隔开 ),也可以是伪目标

tab 第二行要输入一个Tab键

commands 表示能在终端执行的命令

示例

1
2
3
4
a.txt: b.txt c.txt
cat b.txt c.txt > a.txt
# 要创建a必须要b和c
# Tab键后面更命令
1
2
3
4
5
6
7
8
.PHONY: build
build: b.txt c.txt
cat b.txt c.txt > a.txt

# 这里的build就是一个伪目标
# Tab键后面更命令
# 为了防止正好有一个名为build的文件 导致make命令误认为build文件已存在,而不执行
# 可以通过 .PHONY明确声明build是一个伪目标

make命令默认会根据当前目录的Makefile去进行编译构建,也可以通过-f指定文件。

make 默认只会执行Makefile中的第一个目标

通过 make target 执行指定规则

正常情况下,make会打印每条命令,然后再执行,这就叫做回声(echoing),可以通过命令前加@符号,取消打印。

make

1
2
3
4
# 命令中的注释也会被打印
test:
@# 这是测试
@echo TODO
Donate comment here.