📜  makefile 规则 (1)

📅  最后修改于: 2023-12-03 14:44:07.864000             🧑  作者: Mango

Makefile规则

Makefile是一种声明式的工具,用于自动化构建和管理工程项目。Makefile中包含一系列规则,每个规则定义了一条依赖关系和相应的动作,用于生成或更新目标文件。

基本语法

一个Makefile规则由三部分组成:

target: dependencies
    recipe
  • target: 目标文件或执行动作的名称。
  • dependencies: 目标文件所依赖的文件列表。
  • recipe: 生成目标文件的脚本或命令。

其中,每个部分都需要使用TAB键缩进。

示例
# 生成可执行文件app
app: main.o utils.o
    gcc -o app main.o utils.o

# 生成main.o目标文件
main.o: main.c utils.h
    gcc -c main.c

# 生成utils.o目标文件
utils.o: utils.c utils.h
    gcc -c utils.c

这个示例中,我们定义了三个规则。第一个规则用于生成可执行文件app,它依赖于main.outils.o两个目标文件。当main.outils.o被更新后,app也需要被重新生成。执行动作是将main.outils.o链接到一起生成可执行文件。

第二个规则用于生成main.o目标文件,它依赖于main.cutils.h两个文件。如果main.cutils.h被更新,main.o也需要被重新生成。执行动作是将main.c编译为目标文件。

第三个规则用于生成utils.o目标文件,它依赖于utils.cutils.h两个文件。如果utils.cutils.h被更新,utils.o也需要被重新生成。执行动作是将utils.c编译为目标文件。

结语

Makefile是一个功能强大的工具,它可以自动化完成很多工程化任务。在编写Makefile时,需要注意格式和语法的正确性,以确保正常工作。