makefile 初始学习
makefile三要素
例如:
main : main.c
gcc main.c -o main
那么问题就来了,Makefile中的两行语句分别是什么意思呢?拆解来看,两行语句可以分为三部分,分别是目标(target)、依赖(prerequisite)和执行语句(recipe):
target:可以是一个 object file(目标文件),也可以是一个执行文件,还可以是一个标签(label)。
prerequisites:生成该 target 所依赖的文件和/或 target 。
command :该 target 要执行的命令(任意的 shell 命令)
这是一个文件的依赖关系,也就是说,target 这一个或多个的目标文件依赖于 prerequisites 中的文件,其生成规则定义在 command 中。
如果有3个头文件和8个c文件,则按照规则来写makefile,则如下图所示
在这个 makefile 中,目标文件(target)包含:执行文件 edit 和中间目标文件(*.o ),依赖文件(prerequisites)就是冒号后面的那些 .c 文件和 .h 文件。每一个 .o 文件都有一组依赖文件,而这些 .o文件又是执行文件 edit 的依赖文件。依赖关系的实质就是说明了目标文件是由哪些文件生成的,换言
之,目标文件是哪些文件更新的。在定义好依赖关系后,后续的那一行定义了如何生