makefile的简单模板

模板如下

这个模板会生成头文件依赖的".d"中间文件,并将所有生成的中间文件,放到tmp目录下。代码简单,文件结构比较整洁。

.PHONY: all clean

all:project_a

BUILD_DIR = tmp

ARGS:= -std=c++11 -g -DXNT -MMD -MP
INC_DIR:= -I./
LIB_DIR:= -L./lib
LIBS:= -lslog -lpthread

SRCS = $(wildcard ./*.cpp ./*.c)
OBJS = $(patsubst %.cpp,$(BUILD_DIR)/%.o,$(SRCS))
DEPS = $(wildcard $(BUILD_DIR)/*.d)

project_a:$(OBJS)
	g++ $^ -o $@ $(LIB_DIR) $(LIBS)

$(BUILD_DIR)/%.o:%.cpp
	if [ ! -d $(BUILD_DIR) ]; then mkdir -p $(BUILD_DIR); fi;
	g++ -g -c $< $(INC_DIR) $(ARGS) -o $@

-include $(DEPS)

clean:
	@# 清理生成的内容
	rm -rf ./project_a $(BUILD_DIR)

原文地址:https://www.cnblogs.com/pureLaw/p/14922164.html