Make的功能是简化编译过程里面的所执行的命令,同时还具有很多方便的功能。
原理:
当make指令第一次执行时,它会扫描makefile找到目标以及其依赖。看这些依赖是否是目标,如果是那就继续为这些依赖扫描makefile找它的依赖关系,建立它,并执行其方法。如果不是直接就可以建立关系。编译他们。
比如:
我们要编译test0.c,test1.c,test2.c,test3.c 生成TEST可执行程序
四个文件
我们可以这样写$gcc -o TEST test0.c test1.c test2.c test3.c
但是万一我们发现我们刚才test3.c里面的内容刚才写错了,我们更改好了,我们想重新编译,我们就接着输入$gcc -o TEST test0.c test1.c test2.c test3.c
那样的话我们费时费力,我们可以写一个makefile简化方便执行。
$ vim makefile
后面添加
clean:
<tab>rm -f hello
我们就可以调用
$make clean 进行清除hello可执行程序,因为这里make以clean为目标,调用了clean。
我们如果有很多个文件要处理
我们可以在makefile里面定义一个变量
$vim makefile
OBJS = main.c hello.c jj.c
main:$(OBJS)
<tab>gcc -o main $(OBJS)
clean:
<tab>rm -f main $(OBJS)
我们 $make clean main 先调用clean 清除,然后调用了main编译,这就是make指令
注意:
1.变量左边不可以加<tab>
2.变量与变量内容以“=”隔开,同时来年告白那可以具有空格
3.变量最好以大写为主,为了编码风格
4.运用变量时,我们以$(变量)或者${变量}使用
5.变量与变量内容“=”两边不能有“:”;
后面的可以一个添加使用,方法一致