Makefile模板-在build下根据src目录的源码生成中间文件

目录结构

+ proj
   + src
      module1.cpp
      module1.cpp
   main.cpp
   makefile

代码

BUILD := ./build
SRC_FOLDER := ./src
SRC := $(wildcard $(SRC_FOLDER)/*.cpp)
OBJ := $(SRC:$(SRC_FOLDER)/%.cpp=$(BUILD)/%.o)
GCC = g++
FLAGS = -g
OUTPUT = main.out
MAIN = main.cpp

all : $(BUILD) $(OUTPUT)
$(BUILD):
	mkdir $(BUILD)
$(OUTPUT) : $(OBJ)
	$(GCC) $(MAIN) $^ -o $@ $(INCLUDES) $(FLAGS)
$(BUILD)/%.o : $(SRC_FOLDER)/%.cpp
	$(GCC) -c $< -o $@ $(FLAGS)
.PHONY : clean
clean :
	rm -r $(BUILD) $(OUTPUT)

make结果

执行makemake all:

+ proj
   + build
      module1.o
      module2.o
   + src
      module1.cpp
      module2.cpp
   main.cpp
   main.out
   makefile

执行make clean:目录状态还原为初始的目录结构。


版权声明:本文为NekoTom原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。