代码拉取完成,页面将自动刷新
# 获取当前目录名称作为可执行文件名称
TARGET = $(notdir $(CURDIR))
# 编译器选择(默认使用g++,可以通过环境变量CXX覆盖)
CXX ?= g++
# 编译器标准版本(可以根据需要进行修改)
CXX_STD ?= -std=c++20
# 编译器选项 根据自己选择添加警告为错误选项 -Werror
# CXXFLAGS = $(CXX_STD) -Iinc -Wall -Wextra -Werror -MMD -MP
CXXFLAGS = $(CXX_STD) -Iinc -Wall -Wextra -MMD -MP
# 源文件和目标文件目录
SRC_DIR = src
BUILD_DIR = build
SRC = $(wildcard $(SRC_DIR)/*.cpp)
OBJ = $(patsubst $(SRC_DIR)/%.cpp,$(BUILD_DIR)/%.o,$(SRC))
DEP = $(OBJ:.o=.d)
# 规则
all: $(TARGET)
$(TARGET): $(OBJ)
$(CXX) $(CXXFLAGS) -o $@ $^
$(BUILD_DIR)/%.o: $(SRC_DIR)/%.cpp | $(BUILD_DIR)
$(CXX) $(CXXFLAGS) -c $< -o $@
# 创建构建目录
$(BUILD_DIR):
mkdir -p $(BUILD_DIR)
# 运行程序
run: $(TARGET)
./$(TARGET)
# 清理
clean:
rm -rf $(BUILD_DIR) $(TARGET)
# 包含依赖文件
-include $(DEP)
# 伪目标
.PHONY: all clean run
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。