自动编译Makefile,原版升级版,支持自动推倒头文件依赖关系、创建目标路径

###################################################################################
#                 简易多模块程序自动编译/清除Makefile v2.0
#简介:    自动编译、清除功能,不需要每次编译输入gcc或者rm指令
#使用方法: 先配置Makefile中的配置项、目标名称等,然后在终端执行make即可
#
#使用说明:1. 本Makefile可以自动推倒源程序与头文件之间的依赖关系,并生成.depend文件
#          2. 当目标目录不存在时,本Makefile将调用$(MKDIR)命令创建出完整的目标目录树
#          3. 在执行make clean命令时,将删除$(SRC)目录下所有匹配模式*~的文件,望悉知
#
#          Author: wangqunfeng, Date: 2013/12/30
#修改历史:
#          2014-1-9:添加2个编译过程中间输出文件:预处理.i,编译.s
#          2015-2-27: v2.0 自动推倒头文件依赖关系,支持创建目标目录
#################################用户配置选项######################################
TARGET = dict
OBJS = cworddb.o cwordserver.o eworderror.o


CXX = g++
GDB = gdb
MKDIR = mkdir
VPATH += ./:./include


CXXFLAGS = -g -std=c++11


SRC = ./src
BIN = ./bin/Debug
####################################################################################


#删除路径后面的斜线,并转换为路径序列
VPATH := $(patsubst %/,%,$(subst :, ,$(VPATH)))
#设置包含文件搜索路径
CXXFLAGS += $(addprefix -I,$(VPATH))


####################################################################################


all:bin depend $(BIN)/$(TARGET)


$(BIN)/$(TARGET) : $(addprefix $(BIN)/,$(OBJS))
	$(CXX) $(addprefix $(BIN)/,$(OBJS)) $(CXXFLAGS) -o $(BIN)/$(TARGET)


$(addprefix $(BIN)/,$(OBJS)): $(BIN)/%.o : $(SRC)/%.cpp
	$(CXX) $(CXXFLAGS) $< -o $@


-include $(BIN)/.depend


depend: 
	$(CXX) $(CXXFLAGS) -MM ${OBJS:%.o=$(SRC)/%.cpp} > $(BIN)/.depend


bin:
	[ ! -d $(BIN) ] & $(MKDIR) -p $(BIN)


clean:
	rm -rf $(SRC)/*~ $(BIN)/$(TARGET) $(addprefix $(BIN)/,$(OBJS)) $(BIN)/.depend


exec:
	$(BIN)/$(TARGET)


gdb:
	$(GDB) $(BIN)/$(TARGET)


原版地址:http://blog.csdn.net/qq759981398/article/details/38709319

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sanzhong104204

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值