make/makefile是什么
make是一个命令,makefile是一个文件
makeflie存在的意义
我们知道在一个巨大的工程中可能存在几百上千甚至更多的文件,文件与文件之间存在着相连的关系,也有可能生成多个可执行的程序,并且这些可执行程序的顺序是按一定的要求去执行,因此就会存在make/makefile,其中makefile中存在的是多个文件之间的关系以及执行的先后顺序。makeflie带来的最大好处就是“自动化编译”,一旦写好就只需要一个make命令就能完成整个工程的全自动编译,极大的提高了软件的开发效率。
makefile的原理
makefile中必须包含两个关系:
1.依赖关系
makefile存在的意义就是自动化编译,那么各个文件之间的关系必须存在。我们要形成的可执行程序依赖于谁,拿谁去编译,那么这个就是依赖关系。
2.依赖方法
各个文件如何执行。执行的方式就是依赖方法。
makeflie使用示例
.PHONY: 后面的内容是我们的伪目标。
伪目标的意义:总是被执行。
如下是我们的上述中的文件
当我们输入make指令后,它自动编译
此时当前目录下便生成了,可执行程序
此时便可执行 test.c 文件中的命令,之后我们也可使用 make clean 命令去清除这个可执行程序,如下,此时当前目录下就没有了可执行程序
为什么make生成可执行程序时不需要make + 可执行程序名字,而make clean需要?
因为makefile中默认从上到下生成一个可执行程序。