make和makefile
- 一.基本使用
- 二.make并不是每一次都会进行编译
- 三.原理
- 四.特殊符号
一.基本使用
首先创建一个mycode.c文件,接着使用vim写几行代码。
接着创建一个makefile文件(这里的m大写小写均可但需要在当前目录下),并使用vim进行操作。
第一行是依赖关系项,将mycode.c编译成mycode。第二行是依赖方法,就是具体如何将其编译成mycode。第三行clean是我们自定义的一个依赖关系,右侧没有任何东西表明它不依赖任何项,下面一行就是写自定义的命令(注意前面都使用tab缩进)。
这样在make时就会直接执行编译命令。
同理使用make clean就将mycode这个可执行程序删除了。
上面的make其实相当于make mycode。make会自动执行makefile里的第一个命令,所以如果将clean放在第一行那么make就执行的是clean命令。
二.make并不是每一次都会进行编译
这里我们连续使用make进行编译。
可以看到只有在第一次使用make时它才进行编译,这是make指令的特性,为了避免无意义的重复编译,make被规定在源文件没有发生改变时,不会进行重复编译。也就是说make会根据源文件和目标文件的新旧来判断是否需要重新进行编译。
如果我就是想让它重复编译呢?
这样就需要在makefile文件里加上.PHONY:
三.原理
四.特殊符号
有时候为了简便我们在写依赖关系时可以使用$@(冒号左边)和 $^(冒号右边)来代替。