makefile实战
时间: 2023-08-03 18:22:30 浏览: 104
Makefile工程实战.pdf
好的,下面是一个简单的Makefile实战示例:
```
CC = gcc
CFLAGS = -Wall -Wextra -pedantic -std=c99
SRC = main.c foo.c bar.c
OBJ = $(SRC:.c=.o)
EXEC = program
all: $(EXEC)
$(EXEC): $(OBJ)
$(CC) $(CFLAGS) $(OBJ) -o $(EXEC)
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -f $(EXEC) $(OBJ)
```
这个Makefile用于编译一个名为program的程序,它由三个源文件main.c、foo.c和bar.c组成。Makefile中的变量CC、CFLAGS、SRC、OBJ和EXEC分别表示编译器、编译选项、源文件、目标文件和最终程序名。
Makefile中的规则定义了如何生成目标文件和最终程序。all规则指定了最终程序为$(EXEC),并且依赖于$(OBJ)中的所有目标文件。$(EXEC)规则指定了如何生成最终程序,它依赖于$(OBJ)中的所有目标文件。%.o规则指定了如何生成目标文件,它依赖于对应的源文件。clean规则用于清除所有生成的目标文件和最终程序。
你可以通过在终端中输入make命令来执行Makefile中的规则。make命令将自动检查源文件和目标文件的修改时间,并且只重新编译必要的文件。如果你修改了其中一个源文件,make命令将自动重新编译该文件和依赖于它的所有目标文件,最终生成最新的程序。
阅读全文