3.1 一个Makefile所包含的内容

一、一个Makefile的内容

假设我们有一个简单的Makefile用于编译C程序。下面是一个示例:

# 变量定义
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程序

在上述示例中,我们可以看到以下五种内容:

  1. 变量定义:定义了CCCFLAGS两个变量,分别表示编译器和编译选项。
  2. 显式规则:定义了一个显式规则,指定了如何生成main目标文件。它依赖于main.ofunc.o这两个先决条件。当执行make main命令时,会执行相应的命令将目标文件生成或更新。
  3. 隐式规则:定义了一个隐式规则,描述了如何根据.c文件生成对应的.o目标文件。例如,当执行make main.o命令时,会自动根据main.c文件生成main.o文件。
  4. 指令:定义了一个名为clean的指令,用于清理生成的目标文件和中间文件。当执行make clean命令时,会执行相应的命令删除

你可能感兴趣的:(夜深人静Makefile,c++,开发语言,c语言,linux)