根据vmrp.h,vmrp.c两个文件写一个Makefile文件
时间: 2024-02-22 10:59:34 浏览: 64
假设 `vmrp.h` 和 `vmrp.c` 两个文件在同一个目录下,下面是一个简单的 Makefile 文件的示例:
```
CC=gcc
CFLAGS=-Wall -Wextra -pedantic
vmrp: vmrp.o
$(CC) $(CFLAGS) -o vmrp vmrp.o
vmrp.o: vmrp.c vmrp.h
$(CC) $(CFLAGS) -c vmrp.c
clean:
rm -f vmrp vmrp.o
```
这个 Makefile 文件定义了一个编译 `vmrp` 可执行文件的规则。`CC` 变量指定了编译器的名称,`CFLAGS` 变量指定了编译选项,包括 `-Wall`、`-Wextra` 和 `-pedantic`,用于启用更多的警告信息。
下面是 Makefile 文件中定义的三个规则:
- `vmrp: vmrp.o`:定义了 `vmrp` 可执行文件的依赖关系,即需要 `vmrp.o` 文件才能生成 `vmrp` 可执行文件。
- `$(CC) $(CFLAGS) -o vmrp vmrp.o`:定义了生成 `vmrp` 可执行文件的命令。`$(CC)` 表示编译器的名称,`$(CFLAGS)` 表示编译选项,`-o vmrp` 表示输出文件名为 `vmrp`,`vmrp.o` 表示输入文件为 `vmrp.o`。
- `vmrp.o: vmrp.c vmrp.h`:定义了 `vmrp.o` 文件的依赖关系,即需要 `vmrp.c` 和 `vmrp.h` 文件才能生成 `vmrp.o` 文件。
- `$(CC) $(CFLAGS) -c vmrp.c`:定义了生成 `vmrp.o` 文件的命令。`-c` 表示只编译不链接,`vmrp.c` 表示输入文件为 `vmrp.c`。
最后,定义了一个 `clean` 规则,用于清理生成的可执行文件和目标文件。
阅读全文