如何写一个makefile?
时间: 2024-05-05 07:16:16 浏览: 88
makefile文件教程
Makefile是一个用于编译和构建程序的文件,它包含了一系列的规则和指令,告诉编译器如何编译和链接代码。下面是一个简单的Makefile示例,它用于编译一个C语言程序。
假设我们有以下的C语言程序文件:
```
// main.c
#include <stdio.h>
int main() {
printf("Hello, world!\n");
return 0;
}
```
我们希望编译这个程序并生成可执行文件。这个Makefile包含了两个部分,变量和规则:
```
# 变量定义
CC = gcc
CFLAGS = -Wall -Werror
# 规则定义
all: main
main: main.o
$(CC) -o main main.o
main.o: main.c
$(CC) $(CFLAGS) -c main.c
clean:
rm -f main main.o
```
在这个Makefile中,我们定义了两个变量:
- CC:指定了编译器的名称,这里使用gcc。
- CFLAGS:指定了编译选项,这里使用了-Wall和-Werror选项。
接下来,我们定义了三个规则:
- all:默认规则,执行这个规则会编译生成可执行文件main。
- main:依赖于main.o文件,执行这个规则会链接生成可执行文件main。
- main.o:依赖于main.c文件,执行这个规则会编译生成目标文件main.o。
最后,我们定义了一个clean规则,用于清除生成的文件。
要编译这个程序,只需要在命令行中输入make命令,即可自动执行Makefile中的规则。如果想要清除生成的文件,可以输入make clean命令。
Makefile是一个非常强大的工具,可以用于编译各种不同的语言和项目。但是,复杂的Makefile也很容易出错,需要仔细检查每一个规则和变量的定义。
阅读全文