?wildcard: 搜索当前目录下所有的.c文件。 ?addprefix $(TEST_DIR)/,$(TEST)) //给$(TEST)加前缀路径 ?$@: 目标变量。 $^: 目标依赖 ?.PONHY: clean :伪目标,会被无条件执行。 ?自动产生依赖:Gcc –M命 令生成该文件要依赖 ...
分类:
其他好文 时间:
2020-02-24 00:45:36
阅读次数:
89
一.变量与函数的示例示例的要求1.自动生成target文件夹存放可执行文件2.自动生成objs文件夹存放编译生成的目标文件3.支持调试版本的编译选项4.考虑代码的扩展性完成该示例所需的1.$(wildcardpattern)获取当前工作目录中满足pattern的文件或目录列表2.$(addprefix,_name)给名字列表name的每一个名字增加前缀_prefix关键技巧1.自动获取当前目录下的
分类:
其他好文 时间:
2019-02-04 14:05:49
阅读次数:
178
1 .PHONY : all compile link clean rebuild $(MODULES) 2 3 DIR_PROJECT := $(realpath .) 4 DIR_BUILD_SUB := $(addprefix $(DIR_BUILD)/, $(MODULES)) 5 MODU... ...
分类:
其他好文 时间:
2018-10-01 19:14:47
阅读次数:
190
之前我们学习了 makefile 中的变量及函数的相关语法知识,那么我们今天就来以实际需求为例来进行实际编写。实战需求:1、自动生成 target 文件夹存放可执行文件;2、自动生成 objs 文件夹存放编译生成的目标文件(*.o);3、支持调试版本的编译选项;4、考虑代码的扩展性。?那么在进行今天的 makefile 编写之前,我们还需要了解下几个知识点:a> $(wildcard _pattern),它的作用是获取当前工作目录中满足 _pattern 的文件或目录列表;b> $(addprefix _prefix,_names),它的作用是给名字列表 _names 中的每一个名字增加前缀 _prefix。?其中的关键技巧:1、自动获取当前目录下的源文件列表(函数调用):SRCS := $(wildcard *.c);2、根据源文件列表生成目标文件列表(变量的值替换):OBJS := $(SRCS:.c=.o);3、对每一个目标列表加上路径前缀(函数调用):OBJS := $(addprefix path/, $(OBJS))。
分类:
其他好文 时间:
2018-06-17 11:35:51
阅读次数:
145
addprefix 是makefile中的函数,是添加前缀的函数例如:$(addprefix src/,foo bar)返回值为“src/foo src/bar”.所以上面的意思是为dirver_dirs变量添加前缀,$(DRIVERS_DIR)/
分类:
其他好文 时间:
2015-07-08 14:29:07
阅读次数:
141
一个比较通用的MakefileTARGET = xxxSRCDIRS = .SRCEXTS := .c .cppSRC = $(foreach d,$(SRCDIRS),$(wildcard $(addprefix $(d)/*,$(SRCEXTS))))OBJ = $(foreach x,$(SR...
分类:
其他好文 时间:
2015-05-16 18:02:36
阅读次数:
92
1.$(subset ,,)
名称:字符串替换
功能:把字符串中得字符串替换成
返回值:返回被替换过后的字符串
示例:
$(subst ee,EE,feet on the street)
把"feet on the street"中的"ee"替换成"EE",返回结果是“fEEt on the strEEt".
2.$(patsubst ,, ) ...
分类:
其他好文 时间:
2015-04-21 09:57:39
阅读次数:
262
函数名称:加前缀函数—addprefix。函数功能:为“NAMES…”中的每个文件名称加入?前缀“PREFIX”。參数“NAMES…”是空格切割的文件名称序列,将“SUFFIX”加入?到此序列的每个文件名称之前。返回值:以单空格切割的加入?了前缀“PREFIX”的文件名称序列。函数说明:演示样例:$...
分类:
其他好文 时间:
2014-11-09 22:11:10
阅读次数:
204
函数名称:加前缀函数—addprefix。函数功能:为“NAMES…”中的每个文件名称加入前缀“PREFIX”。參数“NAMES…”是空格切割的文件名称序列,将“SUFFIX”加入到此序列的每个文件名称之前。返回值:以单空格切割的加入了前缀“PREFIX”的文件名称序列。函数说明:演示样例:$(ad...
分类:
其他好文 时间:
2014-05-26 13:51:26
阅读次数:
233