Makefile 编写规则
make: 更有效的运行和编译你的程序
基础示例
创建如下Makefile文件:
1 | say_hello: |
执行make,会有如下输出:
1 | $ make |
当 make 被执行时,整条指令 echo “Hello World” 都被显示出来,之后才是真正的执行结果。如果不希望指令本身被打印处理,需要在 echo 前添加 @。
1 | say_hello: |
在上面的例子中,“say_hello” 类似于其他编程语言中的函数名。这被称之为 目标(target)。在该目标之后的是预置条件或依赖。为了简单起见,我们在这个示例中没有定义预置条件。echo ‘Hello World’ 命令被称为 步骤(recipe)。这些步骤基于预置条件来实现目标。目标、预置条件和步骤共同构成一个规则。
总结一下,一个典型的规则的语法为:
1 | 目标: 预置条件 or 依赖 |
相关语法
- .PHONY[虚伪的] 用来定义这些不是文件的目标。(因为目标理论上是一个文件名,即下面的步骤是要生成这个文件的,虽然实际使用上不这样,这时,如果文件夹下有一个同名的文件就会报错,.PHONY定义虚拟的目标)
- .DEFAULT_GOAL:执行make时默认执行第一个目标,可以使用设置.DEFAULT_GOAL来修改默认的目标,也可以使用.DEFAULT_GOAL := all 来执行全部。
- Makefile支持变量定义