Makefile模板(取自vscode)

Makefile模板

vscode插件:单一目标

最近在学习Makefile写法,但是总觉得自己写的太烂了,找到了vscode一个插件C/C++ Project Generator产生的Makefile,感觉很清晰。

CC		:= g++
C_FLAGS := -std=c++17 -Wall -Wextra

BIN		:= bin
SRC		:= src
INCLUDE	:= include
LIB		:= lib

LIBRARIES	:=

EXECUTABLE	:= main

all: $(BIN)/$(EXECUTABLE)

clean:
	$(RM) $(BIN)/$(EXECUTABLE)

run: all
	./$(BIN)/$(EXECUTABLE)

$(BIN)/$(EXECUTABLE): $(SRC)/*
	$(CC) $(C_FLAGS) -I$(INCLUDE) -L$(LIB) $^ -o $@ $(LIBRARIES)

以上代码均来自vscode插件C/C++ Project Generator

编译多个目标

下面的makefile可以编译的情景是:每个目标都有且只有一个依赖文件,且依赖文件为.h文件(函数实现也在.h中)。但是这不是一种好的项目组织方式。

CC		:= g++
C_FLAGS := -std=c++17 -Wall -Wextra

BIN		:= bin
SRC		:= src
INCLUDE	:= include
LIB		:= lib

LIBRARIES	:=

CPP_SRC = $(wildcard $(SRC)/*.cpp)
EXECUTABLE = $(patsubst %.cpp, %, $(CPP_SRC))

all: $(EXECUTABLE)

clean:
	$(RM) $(BIN)/$(EXECUTABLE)

run: all
	./$(BIN)/$(EXECUTABLE)

$(EXECUTABLE): $(SRC)/%.cpp
	$(CC) $(C_FLAGS) -I$(INCLUDE) -L$(LIB) $< -o $@ $(LIBRARIES)
	mv $@ $(BIN)
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值