Make工程管理器是完全依据Makefile文件中的编译规则命令进行工作的。Makefile文件由以下三项基本内容组成:
1、需要生成的目标文件(target file)。
2、生成目标文件所需要的依赖文件(dependency file)
3、生成目标文件的编译规则命令行(command)。
格式:
target file : dependency file
command
变量:
变量使用方式:$(变量名)
变量定义方式:
1、= 2、:= 3、+=(作用类似C语言中的+=) 4、通过?=
各级makefile的作用:
1、总控makefile:(1)进入各个子目录执行其中的make命令。
(2)把每个功能目录下的.o文件链接生成可执行文件。
2、功能目录下的makefile:负责所在目录下源文件的编译工作。
makefile中的主要函数:
1、$(subst 参数1,参数2,参数三):把参数3中的参数1替换成参数2。返回值:被替换后的参数3。
2、$(patsubst模式参数,参数1,参数2):把参数2中符合模式参数的单词替换成参数1。
3、$(wildcard模式参数):列出当前目录下所有符合模式参数的文件名
4、$(strip参数):去掉参数中开头和结尾的空格
5、$(findstring参数1,参数2):在参数2中查找参数1,如果找到了就返回参数1,找不到返回空
6、$(filter模式参数,参数1):从参数1中筛选出符合模式参数的字符串
7、$(addsuffix参数1,参数2):在参数2每个单词后加上后缀参数1。
8、$(addprefix参数1,参数2):在参数2每个单词后加上前缀参数1。
9、$(foreach变量参数,参数1,表达式):循环取出参数1中的单词赋给变量参数,执行表达式,返回表达式的运行结果。
10、$(call变量参数,参数):循环吧参数依次赋给变量参数
11、$(if条件参数,执行参数):如果条件函数非空,则执行执行参数。返回运行结果
$(if条件参数,执行参数1,执行参数2):如果条件参数非空,则运行执行参数1,否则运行执行参数2。
12、$(dir参数):从参数中取出目录部分,返回值为目录部分
13、$(error参数):停止make运行并显示参数
14、$(warning参数):make运行时显示参数。