CC := g++
CFLAGS := -g
TARGET := test
SRCS := $(wildcard *.cpp)
OBJS := $(patsubst %cpp,%o,$(SRCS))
all:$(TARGET)
%.o:%.cpp
$(CC) $(CFLAGS) -c $<
$(TARGET):$(OBJS)
$(CC) $(CFLAGS) -o $@ $^
clean:
rm -rf $(TARGET) *.o
其中wildcard和patsubst为关键字,
$(wildcard *.cpp /xxx/xxx/*.cpp) 为获取当前目录下和/xxx/xxx/目录下所有.cpp文件名
$(patsubst %cpp,%o,$(SRCS)) 为替换所有的cpp为o