makefile 编写多个.c文件
时间: 2023-08-29 17:13:51 浏览: 49
以下是一个示例makefile,用于编译多个.c文件:
```
# 编译器
CC = gcc
# 编译选项
CFLAGS = -Wall -Wextra -Werror
# 目标文件
TARGET = myprogram
# 源文件
SRCS = main.c file1.c file2.c
# 生成的目标文件
OBJS = $(SRCS:.c=.o)
# 默认目标
all: $(TARGET)
# 生成目标文件
$(TARGET): $(OBJS)
$(CC) $(CFLAGS) $^ -o $@
# 生成.o文件
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
# 清除生成的文件
clean:
rm -f $(OBJS) $(TARGET)
```
这个makefile定义了以下内容:
- `CC`:指定使用的编译器为gcc。
- `CFLAGS`:指定编译选项,包括开启所有警告和错误。
- `TARGET`:指定生成的目标文件名为myprogram。
- `SRCS`:指定源文件名为main.c、file1.c和file2.c。
- `OBJS`:通过将源文件名中的.c替换为.o,生成对应的目标文件名。
- `all`:默认目标为生成myprogram目标文件。
- `$(TARGET)`:生成目标文件,依赖于OBJS中的所有目标文件。
- `$(OBJS)`:生成每个目标文件,依赖于对应的源文件。
- `%.o`:生成单个目标文件,依赖于对应的源文件。
- `clean`:清除生成的目标文件和中间文件。
使用该makefile时,只需在终端中输入`make`即可自动编译所有文件并生成myprogram目标文件。输入`make clean`可以清除生成的文件。