跳转至

快速构建

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:清理生成的目标文件和目录

构建

make
清理
make clean

Cmake

参考文档官方文档

gcc手动编译

gcc -I../include src/bootstrap.c src/Utils/cmd_utils.c src/Utils/install_utils.c src/Utils/shell_utils.c src/LoginShell/ExamAll.c src/FileManagement/FileSize.c -o cil