我刚刚学习如何创建makefile并意识到规则的先决条件中的头文件和目标文件的顺序很重要,但我不明白为什么.
我和许多同学一起研究和交谈,并且有很多猜测,但没有人有答案.
我知道在编译的预处理步骤中,头文件和源文件中的代码都包含在目标文件中,所以如果我将目标文件和头文件作为先决条件传递,为什么这很重要?
我问,因为如果缺少头文件,我的Makefile不应该编译.
这是代码:
CC = gcc
SRC = main.c file1.c
OBJ = $(SRC:.c=.o)
NAME = my_executable
all: header.h $(OBJ)
$(CC) $(OBJ) -o $(NAME)
Run Code Online (Sandbox Code Playgroud)