makefile notdir函数
notdir使用格式及返回结果
使用notdir函数处理多种后缀文件时未顺利转换
单一文件类型
假设path路径下有a.cpp b.cpp文件,后最均为cpp
DIR=path
SRC=$(DIR)/*.cpp
OBJ=$(notdir %.cpp %.o $(SRC))
得到的OBJ内容为a.o b.o
多种文件类型
假设path路径下有a.cpp b.cpp d.c文件,后缀有cpp和c
DIR=path
SRC=$(DIR)/*.cpp $(DIR)/*.c
OBJ=$(notdir %.cpp %.o $(SRC))
得到的OBJ内容为a.o b.o d.c,该结果用于编译时报错d.c没有规则
修改方案
DIR=path
SRC=$(DIR)/*.cpp $(DIR)/*.c
OBJ=$(notdir %.cpp %.o $(SRC))
OBJ:=$(notdir %.c %.o $(SRC))
最后必须用:=
,得到的OBJ内容是a.o b.o d.o
编译正常