我个人的一个Makefile模版(C++、C)

.PHONY: all clean
CC=g++
BIN=target
DEPF=main.dep
SRC_FILE_TYPE= .c .cpp
H_FILE_TYPE= .h .hpp
LOCAL_SRC_PATH= .
LOCAL_INCLUDE_PATH= .
LOCAL_LIBRARY_PATH= .
LIBS=
D_FINE_SIGN=
DEFINE_FLAGS=$(addprefix -D, $(D_FINE_SIGN))
CFLAGS= $(addprefix -I, $(LOCAL_INCLUDE_PATH)) -g -Wall
CXXFLAGS= $(addprefix -I, $(LOCAL_INCLUDE_PATH)) -g -Wall
LDFLAGS= $(addprefix -L, $(LOCAL_LIBRARY_PATH))
GENERALLY_ALL_SRC_FILE=$(foreach n, $(LOCAL_SRC_PATH), $(foreach m, $(SRC_FILE_TYPE), $(n)/*$(m)))
SUBST_ALL_SRC_FILE=$(subst //, /, $(GENERALLY_ALL_SRC_FILE))
ALL_SRC_FILE=$(filter-out $(subst ., %/*.,  $(SRC_FILE_TYPE)),  $(shell echo $(SUBST_ALL_SRC_FILE)))
GENERALLY_H_FILE=$(foreach n, $(LOCAL_INCLUDE_PATH), $(foreach m, $(H_FILE_TYPE), $(n)/*$(m)))
SUBST_H_FILE=$(subst //, /, $(GENERALLY_H_FILE))
H_FILE=$(filter-out $(subst ., %/*., $(H_FILE_TYPE)), $(shell echo $(SUBST_H_FILE)))

OBJ=$(foreach n, $(subst .,%., $(SRC_FILE_TYPE)), $(filter %.o, $(patsubst $(n),%.o, $(ALL_SRC_FILE))))

all:$(DEPF) $(BIN)
$(DEPF):$(ALL_SRC_FILE) $(H_FILE)
	@cat /dev/null > $@
	$(CC) $(CFLAGS) $(DEFINE_FLAGS) $(ALL_SRC_FILE) -MM >>  $@
-include $(DEPF)
$(BIN):$(OBJ)
	$(CC) $(LDFLAGS) $(LIBS) $^ -o $@
clean:
	rm -rf $(BIN) $(OBJ) $(DEPF)
其实上面的模板 根据实际情况更改一下 编译器、指定一下 -std=参数、添加一下必要的头文件路径、库路径,指定一下库链接名称即可。
当然还要根据世纪情况,添加库编译相关。可以根据实际情况调整一下即可。



 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值