wildcard

扩展通配符;

src = $(wildcard *.c)
//将当前目录下的所有以*.c格式命名的文件构成一个文件名列表变量src;
src = $(wildcar *.c *.cpp src/*.cpp)
//也可指定多个目录下特殊命名格式的文件列表变量;
//获取当前目录下以.c和.cpp命名的文件名以及src目录下以.cpp命名文件名列表变量src;
$(patsubst %.c,%.o,$(wildcard *.c))
//将当前目录下的所有*.c文件列表变量,替换为.o文件列表变量;
//适用于编译指定目录下的多个源文件;

patsubst

替换通配符;

objects := $(patsubst %.c,%.o,$(wildcard *.c))//将当前目录下的.c源文件列表替换为同名的目标文件列表,构建了目标文件;
foo : $(objects)
        cc -o foo $(objects)
//以上是将c文件编译为的目标文件.o链接为foo可执行程序;

可实现将不同目录下的源码同时编译并链接为一个可执行程序;

 

posted on 2019-10-24 17:31  luku  阅读(212)  评论(0编辑  收藏  举报