2025-01-10 14:06:58 +08:00
|
|
|
# 编译器和编译选项
|
|
|
|
CXX = g++
|
2025-01-10 14:10:01 +08:00
|
|
|
CXXFLAGS = -Wall -Wextra -std=c++17 -O2 -Wno-unused-parameter
|
2025-01-10 14:06:58 +08:00
|
|
|
|
|
|
|
# 文件和目标
|
|
|
|
LIB_SRC = filecomplete.cpp
|
|
|
|
LIB_OBJ = $(LIB_SRC:.cpp=.o)
|
|
|
|
LIB_HEADER = filecomplete.h
|
|
|
|
|
|
|
|
MAIN_SRC = main.cpp
|
|
|
|
MAIN_OBJ = $(MAIN_SRC:.cpp=.o)
|
|
|
|
TARGET = main
|
|
|
|
|
|
|
|
# 默认目标
|
|
|
|
all: $(TARGET)
|
|
|
|
|
|
|
|
# 生成目标文件
|
|
|
|
$(TARGET): $(LIB_OBJ) $(MAIN_OBJ)
|
|
|
|
$(CXX) $(CXXFLAGS) -o $@ $^
|
|
|
|
|
|
|
|
# 编译库源文件
|
|
|
|
$(LIB_OBJ): $(LIB_SRC) $(LIB_HEADER)
|
|
|
|
$(CXX) $(CXXFLAGS) -c $< -o $@
|
|
|
|
|
|
|
|
# 编译主程序文件
|
|
|
|
$(MAIN_OBJ): $(MAIN_SRC)
|
|
|
|
$(CXX) $(CXXFLAGS) -c $< -o $@
|
|
|
|
|
|
|
|
# 清理生成文件
|
|
|
|
clean:
|
|
|
|
rm -f $(LIB_OBJ) $(MAIN_OBJ) $(TARGET)
|
|
|
|
|
|
|
|
# 伪目标
|
|
|
|
.PHONY: all clean
|