一、一个Makefile的内容
假设我们有一个简单的Makefile用于编译C程序。下面是一个示例:文章来源:https://uudwc.com/A/ABkAV
# 变量定义
CC = gcc
CFLAGS = -Wall -g
# 显式规则
main: main.o func.o
$(CC) $(CFLAGS) -o main main.o func.o
# 隐式规则
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
# 指令
clean:
rm -f main *.o
# 注释
# 这是一个简单的Makefile,用于编译C程序
在上述示例中,我们可以看到以下五种内容:文章来源地址https://uudwc.com/A/ABkAV
- 变量定义:定义了
CC
和CFLAGS
两个变量,分别表示编译器和编译选项。 - 显式规则:定义了一个显式规则,指定了如何生成
main
目标文件。它依赖于main.o
和func.o
这两个先决条件。当执行make main
命令时,会执行相应的命令将目标文件生成或更新。 - 隐式规则:定义了一个隐式规则,描述了如何根据
.c
文件生成对应的.o
目标文件。例如,当执行make main.o
命令时,会自动根据main.c
文件生成main.o
文件。 - 指令:定义了一个名为
clean
的指令,用于清理生成的目标文件和中间文件。当执行make clean
命令时,会执行相应的命令删除