学习目标

  • 理解构建系统的作用
  • 掌握 Makefile 编写
  • 学会管理复杂项目

7.1 为什么需要 Make

手动编译很麻烦:

gcc -c main.c
gcc -c utils.c
gcc -o app main.o utils.o

使用 Make 自动化:

make

7.2 基础 Makefile

# 目标: 依赖
#     命令

app: main.o utils.o
	gcc -o app main.o utils.o

main.o: main.c
	gcc -c main.c

utils.o: utils.c
	gcc -c utils.c

clean:
	rm -f *.o app

7.3 变量和模式规则

CC = gcc
CFLAGS = -Wall -O2
OBJS = main.o utils.o
TARGET = app

$(TARGET): $(OBJS)
	$(CC) -o $(TARGET) $(OBJS)

%.o: %.c
	$(CC) $(CFLAGS) -c $<

clean:
	rm -f $(OBJS) $(TARGET)

实践练习

创建一个计算器项目,包含加减乘除功能,使用 Makefile 构建。

下一步

综合项目:实现 MyShell

更新时间: