# 通用的 kernel 风格的 makefile
# 可执行文件名
TARGET=your_executable_name
# 该目标文件所处目录(必须为相对路径)
OBJ_DIR=./obj
# 源文件所处目录(必须为相对路径)
SRC_DIR=./src
# 编译器
CC=gcc
# 获取所有符合条件的源文件
SRCS=$(wildcard $(SRC_DIR)/*.c)
# 将所有源文件转换为目标文件路径
OBJS=$(patsubst $(SRC_DIR)/%.c, $(OBJ_DIR)/%.o, $(SRCS))
# 依赖 .c 文件与 .h 文件
DEPS=$(wildcard $(SRC_DIR)/*.h)
# 生成可执行文件
$(TARGET): $(OBJS)
$(CC) -o $@ $^
# 生成目标文件
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(DEPS)
$(CC) -c $< -o $@
# 清理目标文件与可执行文件
clean:
rm -rf $(OBJ_DIR)/*.o $(TARGET)
.PHONY: clean
如何写出符合kernel风格的通用makefile
文件列表
make_c_proj.zip
(预估有个6文件)
make_c_proj_multi_obj
include
sum.h
23B
Makefile.build
963B
Makefile
997B
src
sum.c
99B
Makefile
97B
main.c
97B
暂无评论