makefile学习总结

来源:互联网 发布:mac腾讯视频 上传 错误 编辑:程序博客网 时间:2024/06/06 16:33

常用函数

wildcard函数

介绍:wildcard是通配符函数,通过它可以得到当前工作目录中满足_pattern模式的文件或目录名列表。

形式:

$(wildcard _pattern)


例子:

.PHONY : allSRCS = $(wildcard *.c)all :@echo $(SRCS)


patsubst函数

介绍:patsubst函数被用来将名字列表_text中符合_pattern模式的名字替换为_replacement,并将替换后的名字列表返回

形式:

$(patsubst _pattern, _replacement, _text)


例子:

.PHONY : allmixed = foo.c bar.c main.oobjects := $(patsubst %.c, %.o, $(mixed))all :@echo $(objects)


notdir函数

介绍:notdir函数被用来从路径_names中抽取文件名,并将文件名返回

形式:

$(notdir _names)


例子:

.PHONY : allfile_name := $(notdir code/foo/src/foo.c code/bar/src/bar.c)all :@echo $(file_name)


addprefix函数

介绍:addprefix函数被用来给名字列表_names中的每一个名字增加前缀_prefix,并将增加了前缀的名字列表返回

形式:

$(addprefix _prefix, _names)


例子:

.PHONY : allwithout_dir = foo.c bar.c main.owith_dir = $(addprefix objs/, $(without_dir))all :@echo $(with_dir)


addsuffix函数

介绍:addsuffix函数被用于给名字列表_names中的每一个名字增加后缀_suffix,并将增加了后缀_suffix的名字列表返回

形式:

$(addsuffix _suffix, _names)


例子:

.PHONY : allwithout_suffix = foo bar mainwith_suffix := $(addsuffix .c, $(without_suffix))all :@echo $(with_suffix)


 

变量

自动变量

介绍:

$@:用于表示一个规则中的目标。当一个规则中有多个目标时,$@所指的是其中任何造成规则命令被运行的目标。

$^:表示的是规则中所有先决条件。

$<:表示的是规则中第一个先决条件

例子:

.PHONY : allall : first second third@echo "\$$@ = $@"@echo "$$^ = $^"@echo "$$< = $<"first second third :


 

原创粉丝点击