问题一: $(CC) -c $^ -o $(ROOT_DIR)/$(OBJS_DIR)/$@ 这里的$^和$@是设么意思?html
通过查找,该特殊符号的用法以下:ubuntu
假如:all:library.cpp main.cpp 三个符号表明的含义以下?函数
$@
evaluates to all
$<
evaluates to library.cpp
$^
evaluates to library.cpp main.cpp
问题二: CUR_SOURCE=${wildcard *.c} 这句话的含义是? lua
使用“$(wildcard *.c)”来获取工做目录下的全部的.c文件列表。复杂一些用法;能够使用“$(patsubst %.c,% $(wildcard *.c))”,首先使用“wildcard”函数获取工做目录下的.c文件列表;以后将列表中全部文件名的后缀.c替换为.o。这样咱们就能够获得在当前目录可生成的.o文件列表。spa
问题三: 在VCODEC_VOLT=1.6V的状况下,VCODEC_STEM := $(subst .,P,$(VCODEC_VOLT)) 这里的VCODEC_STEM是多少呢?code
首先看一下subst是什么意思?htm
$(subst <from>,<to>,<text>) 名称:字符串替换函数——subst。 功能:把字串<text>中的<from>字符串替换成<to>。 返回:函数返回被替换事后的字符串。 示例: $(subst ee,EE,feet on the street) 把“feet on the street”中的“ee”替换成“EE”,返回结果是“fEEt on the strEEt”。
能够看出,subst是字符串处理命令,这样结果就很明显了,意思是把VCODEC_VOLT=1.6V中的小数点换成P,就变成了:VCODEC_STEM=1P6V.blog
好读书而不求甚解,这个习惯很差,要把思惟训练的严谨,就要一丝不苟的去进行。文档
针对makefile的东西,要后面继续的深刻的分析:字符串
参考文档: