qfedu-c-level/day15/d1-stuMangerSystem/Makefile

37 lines
1.0 KiB
Makefile
Raw Permalink Normal View History

# 定义变量,用于存放目标文件和依赖文件的目录
OBJ_DIR := ./objs
# $@ 表示目标文件,
# $^ 表示依赖文件列表去重之后的所有依赖文件,
# $< 表示第一个依赖文件,
# $* 表示匹配目标文件名的部分,
# $% 表示静态模式中的百分号匹配
# CC 是编译器
# CC = gcc
# TARGET 是目标文件
2023-07-22 10:38:05 +08:00
TARGET = $(OBJ_DIR)/main
# OBJ 是目标文件依赖的文件
# OBJ = link.o main.o
OBJ = $(OBJ_DIR)/link.o $(OBJ_DIR)/main.o
# 所有的 .o 文件都依赖于 .c 文件
$(OBJ_DIR)/%.o: %.c
2023-07-22 10:38:05 +08:00
@$(CC) -c $< -o $@
# 意思是: 目标文件依赖于 OBJ, 执行命令是 $(CC) $(OBJ) -o $(TARGET)
$(TARGET): $(OBJ)
2023-07-22 10:38:05 +08:00
@$(CC) $(OBJ) -o $(TARGET)
# # link.o 依赖于 link.c, 执行命令是 $(CC) -c link.c -o link.o
# # 用于生成目标文件 link.o
# link.o: link.c
# $(CC) -c link.c -o $(OBJ_DIR)/link.o
# # 用于生成目标文件 main.o
# main.o: main.c
# $(CC) -c main.c -o $(OBJ_DIR)/main.o
# 用于清理目标文件和可执行文件
clean:
rm -rf $(OBJ) $(TARGET)