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可执行程序;
可实现将不同目录下的源码同时编译并链接为一个可执行程序;