- 规则
target … : prerequisites
(tab)command
…
通配符 “*”,“?”,“[…]”
*.c 表示所有后缀为c的文件。 - 使用变量
objects = <filename.o> …
使用时要加 , 感 觉 就 像 宏 定 义 一 样 , 感觉就像宏定义一样 ,感觉就像宏定义一样(objects)
定义了变量,在make的时候还可以给变量传参。
make objects=*.c - 隐晦规则
main.o : main.c
gcc main.c -c main.o
可以直接写 main.o : main.c
我试了一下,好像没有反应,还是不用了,直接写显式的好。 - 清空目标文件的规则
.PHONY : clean
clean :
-rm target $(objects)
.PHONY 表示clean是一个“伪目标”。
一般放到最后。 - 应用其他Makefile
(前面不能有tab)include <filename>
-include <filename> 前面的减号表示,无论include过程中出现什么错误,都不要报错继续执行。 - 文件搜寻
1) 特殊变量VPATH
VPATH - src : …/headers
- vpath 关键字
(1)vpath <pattern> <directories>
为符合模式<pattern>的文件指定搜索目录<directories>。
(2)vpath <pattern>
清除符合模式<pattern>的文件搜索目录。
(3)vpath
清除所有已设置好了的文件搜索目录。
vapth 使用方法中的需要包含“%”字符。“%”的意思是匹配零或若干字符,例如, “%.h”表示所有以“.h”结尾的文件。 指定了要搜索的文件集,而则指定了的文件集的搜索的目录。例如:vpath %.h …/headers该语句表示,要求 make 在“…/headers”目录下搜索所有以“.h”结尾的文件。(如果某文件在当前目录没有找到的话)
目前这个水平用用这些差不多了?