第一题 - MakeFile - 编写第一份 MakeFile

本节目录

题目要求

编写你的第一个 Makefile 并运行,使结果能够通过测试。结果应该是,生成一个名为 exercise-01 的可执行文件。

输入

# 将会在测试脚本中尝试:
make all

输出

应该产生一个名为 exercise-01 的可执行文件。

已有代码介绍

已有三个源代码文件和一个 MakeFile 文件,你只需要修改 MakeFile 文件即可。

源代码文件

  • main.c: 程序的入口点
  • functions.c: 提供各种函数,其中包括 hello 函数
  • functions.h: 提供函数声明

MakeFile 文件

CC ?= gcc

CFLAGS	?= -std=c11 -Wall -Wextra -Wpedantic -Werror -g
LDFLAGS ?= -Wl,--as-needed -Wl,--no-undefined

OUTPUT_DIR ?= .

SRCS	= main.c functions.c
OBJS	= $(SRCS:.c=.o)
TARGET	= $(OUTPUT_DIR)/exercise-01

all: $(TARGET)

$(OUTPUT_DIR):
	mkdir -p $(OUTPUT_DIR)

$(TARGET): $(OBJS)
	# 在这里指定 TARGET 的构建命令


%.o: %.c
	# 在这里指定 C 文件的编译命令

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

提示

你需要在 MakeFile 文件中的中文注释附近,完成所需要执行的逻辑。如果遇到困难,那么大概率是因为三种情况引起:

  1. 对 MakeFile 不熟,读不懂框架代码
  2. 只熟悉写死的 MakeFile,不知道使用 MakeFile 里的变量,读不懂框架代码
  3. 对 gcc 编译不熟,知道怎么写 MakeFile 但是不知道怎么写编译命令

如果遇到上面问题,可以对症下药,通过视频、AI、问老师等多种方式进行解决。

注意事项

不要修改源代码文件!