Linux下:
make的使用方式:make或者 make 目标文件
make命令用于自动化编译,这样就不用我们每次都去手动敲g++命令去编译。其需要一个名字为makefile或者Makefile的文件,文件内容为1条或多条规则,后面的规则是为第一条规则服务的。每条规则格式:
目标文件:[依赖的文件]
命令
[]表示依赖的文件可以没有;
命令用于根据依赖的文件生成目标文件;
make执行时会判断:如果找不到规则中的目标文件,则不执行;如果要make的文件(即目标文件)已经是最新,则不去执行,如果目标文件不存在或者依赖有更新,则去执行命令生成目标,其执行时如果找不到依赖的文件,会去下面的规则中查找对应规则的目标文件是否就是依赖的文件,如果没找到,则失败,否则执行。
一般make后会生成一些没用的中间文件,比如.o文件,此时可以写一条规则:
clean:
rm -f *.o
使用方法:make clean;这样make命令就去制作clean,根据规则,其执行rm -f *.o,这样就可以删除文件。
makefile中还有一些函数:wildcard用于模式匹配,patsubst 用于模式匹配并替换;
除了生成文件外,还可以指定规则生成的文件是伪文件(phony file):
.PHONY:clean
这样的话说明clean不会被make生成,这样make在判断时不会判断是否现有的clean文件为最新,如果不指定clean为伪文件,假如已经有一个clean的文件,这时如果你想要make clean,make指令判断文件已经是最新,就不会执行命令。如果把它定义为伪文件,这样就不用考虑是否存在clean文件,每次make clean,都会执行。
注:这里的clean只是一个名字,名字不是固定的,随便起,和编程语言中的变量名字一样,做到见名知义是最好的了。