通用
<pre class="wp-block-code">```
mkdir include src obj bin
```
# makefile
# 编译结果
TARGET = main
# 文件夹
DIR_INC = ./include
DIR_SRC = ./src
DIR_OBJ = ./obj
DIR_BIN = ./bin
# 目标 如果有多级文件夹都需要加上***
SRC = $(wildcard ${DIR_SRC}/*.cpp ${DIR_SRC}/***/*.cpp)
OBJ = $(patsubst %.cpp,${DIR_OBJ}/%.o,$(notdir ${SRC}))
BIN_TARGET = ${DIR_BIN}/${TARGET}
# 编译指令
CC = g++
CFLAGS = -g -Wall -I${DIR_INC}
LFLAGS = -Wall
#target:
# @echo $(SRC)
# @echo $(OBJ)
#主文件
${BIN_TARGET}:${OBJ}
${CC} $(OBJ) -o $@
#第一层文件
${DIR_OBJ}/%.o:${DIR_SRC}/%.cpp
${CC} $(CFLAGS) -c $< -o $@
#第二层文件
${DIR_OBJ}/%.o:${DIR_SRC}/***/%.cpp
${CC} $(CFLAGS) -c $< -o $@
.PHONY:clean
clean:
find ${DIR_OBJ} -name *.o | xargs rm -rf {}
```
```