目录结构
+ 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结果
执行make或make 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版权协议,转载请附上原文出处链接和本声明。