快速构建
Make
Makefile
CC = gcc
CFLAGS = -I./includes -Wall
LDFLAGS =
TARGET = cil
OBJ_DIR = objs
SRCS = $(wildcard src/*.c)
OBJS = $(SRCS:src/%.c=$(OBJ_DIR)/%.o)
all: $(TARGET)
$(TARGET): $(OBJS)
$(CC) $(CFLAGS) $(OBJS) -o $@ $(LDFLAGS)
$(OBJ_DIR)/%.o: src/%.c
@mkdir -p $(OBJ_DIR)
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -rf $(OBJ_DIR) $(TARGET)
.PHONY: all clean
CC:编译器,这里设置为gcc。
CFLAGS:编译选项,包括头文件搜索路径(-I./includes)和警告选项(-Wall)
LDFLAGS:链接选项,这里保持默认
TARGET:目标可执行文件名,这里为cil
OBJ_DIR:存放目标文件的目录,这里为objs
SRCS:源文件列表,通过wildcard函数自动获取src目录下的所有.c文件
OBJS:目标文件列表,根据源文件列表生成
Makefile中的规则包括:
all:构建目标可执行文件
$(TARGET):链接目标文件
$(OBJ_DIR)/%.o:编译源文件为目标文件
clean:清理生成的目标文件和目录
构建
清理