make和makefile
基础知识
在一个大型工程项目中,通常存在多个源文件,那么这些文件哪些是要被先编译,哪些后编译,或者说某些文可能会重复编译。makefile制定了一系列的规则来指定。
makefile带来的好处就是自动化编译,一旦写好这个文件,只需要一条make命令,整个工程就能自动完成编译,极大的提高了效率。
make是一个命令,makefile是一个文件
make/makefile的使用
系统本身并没有makefile,需要我们自己创建makefile文件(也可以叫Makefile)。该文件中主要写依赖关系和依赖方法:
注意:
有了makefile文件,make命令才能派上用场,保存退出makefile文件后在终端输入make命令就能完成自动编译
这个时候你可能有一个疑问:为什么只执行了第一条指令没有执行clean的指令?
makefile默认只执行第一个依赖方法,如果你要执行clean可以使用make+依赖关系
那么为什么要有依赖关系和依赖方法?
我们来感性认识一下:设定一个这样的情景,现在是月底了,你兜里没钱了,所以你决定打电话给你爸要钱
如果你给你爸打电话只说:我是你儿子(表明依赖关系),你爸很难清楚你要干啥
你要想完成目标,你应该说:我是你儿子(依赖关系),我没钱了,打钱(依赖方法)
同理,对于makefile来说,基于mytest.c生成mytest文件(依赖关系),需要执行gcc mytest.c -o mytest命令(依赖方法)