目录
项目自动化构建工具 --- make/makefile
make是一条命令
makefile是一个文件
两者搭配使用,完成自动化构建
makefile带来的好处就是自动化编译,只需要一个make命令,整个工程自动编译,提高开发效率
注意一点依赖方法前一定是一个tab,否则报错。
当写好makefile文件后,就可以直接使用make命令了。
1.在使用make命令后,make会在当前目录下寻找名为GNUmakefile/makefile/Makefile的文件。
2.会默认在文件中执行自上至下数的第一个目标,会把这个mytest这个文件作为最终目标文件
3.如果文件不存在,会依赖后面的test.o,通过执行依赖方法,来生成目标文件。
4.如果test.o不存在,make会在当前文件找目标为test.o的依赖文件,然后生成test.o,再生成mytest
5.make会一层一层去寻找目标所对应的依赖关系,直到生成出最开始的第一个目标文件
6.如果中途出现错误,最后被依赖的文件找不到,直接退出并且报错,make只管文件的依赖性
以上为make指令输入之后的一系列执行原理
stat [文件名] -- 可以查看这个文件的修改时间
在modify也就是修改文件内容时间不发生变化时,make不可重复使用,一但文件有了内容上的修改,即可再次使用make,也就是第一个依赖文件要比第一个目标文件新
.PHONY关键字后面跟的就是伪目标
伪目标的作用有两个:
1.总是被执行的,也就是使目标对象无论如何都要被重新生成
2.并不生成目标文件,只是为了执行一些指令
make默认执行第一个目标文件,所以我们一般把目标写在最开始,伪目标写在后面,那么如何执行伪目标呢?
make [伪目标名]
例如:项目清理 --- 也就是删除生成的可执行程序
使用指令:make clean
同时,我们也是可以给第一个mytest目标设置成伪目标的,使其成为总是被执行的。
如果文件过多,我们是不是还要挨个输入gcc test1.c test2.c test3.c... -o mytest呢?尽管用了makefile,我们发现在写依赖方法的时候,还是要将这些文件名全部写一遍,有没有简介方法呢?这里就简要介绍一下makefile中的小技巧。