makefile是一个文件。里面包含了:
1.文件与文件的依赖关系
2.文件与文件的依赖方法
为什么需要包含文件与文件的依赖方法和依赖方法呢?
假设有一个源文件,mytest.c.我们将它生成的可执行目标文件命名为mytest.那么我们所编写的Makefile文件的内容应该包含这两个文件的依赖关系和依赖方法。
1.依赖关系:mytest的生成依赖于mytest.c
2.依赖关系:gcc mytest.c -o mytest
//Makefile文件
mytest:mytest.c
gcc mytest.c -o mytest
第一行:表明依赖关系,mytest文件的生成依赖于mytest.c
第二行:表明依赖的方法
make是一个命令工具,是一个解释Makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,make
和makefile
搭配着使用就可以完成项目自动化构建。
//格式
make 目标文件名
当我们已经使用一次之后,再实用则会出现这样的报错,“mytest
是最新的”
预处理、编译、汇编、链接的过程是要消耗的,既然没有任何的改动有必要重新再来一次吗?所以,这种情况下需要清理工程。
清理工程的方法:设置伪目标文件
设置伪目标的方法:使用.PHONY
修饰,不需要写所依赖的文件。
伪目标的特性:总是可执行的
清理后,则可以继续make
make
命令的谜之操作(防止绕口,我把目标文件所依赖的文件简称为文件2):
- 去寻找所在目录下的名为
makefile
/Makefile
文件 - 找到后,去找make命令后的文件,或者找默认目标文件
- 如果目标文件不存在/文件2的修改时间比目标文件新,则执行依赖方法
- 如果文件2不存在,则会找文件2所依赖的文件去生成,一层一层地去找关系来生成所需文件
- 如果最后找不到,则退出并报错