Linux下 Makefile编写规则
时间: 2024-05-08 07:16:04 浏览: 113
Makefile是用于自动化编译和构建程序的工具。以下是在Linux下编写Makefile的基本规则:
1. 每个目标都应该包含依赖关系和命令。
2. 目标通常是文件名,但也可以是任何其他名称。
3. 依赖关系是指目标所依赖的文件或其他目标。
4. 命令是指要执行的操作或指令。
5. 使用tab键来缩进命令,而不是空格。
6. 可以使用变量来存储常用的值,例如编译器名称和选项等。
7. 可以使用通配符来匹配多个文件,例如*.c表示所有以.c结尾的文件。
8. 可以使用伪目标来表示不需要生成文件的操作,例如clean和install等。
9. make命令将寻找名为Makefile或makefile的文件,并执行其中的规则。
10. 可以使用注释来解释规则,以#开头。
例如,以下是一个简单的Makefile规则:
```
CC = gcc
CFLAGS = -Wall -g
hello: hello.o
$(CC) $(CFLAGS) -o hello hello.o
hello.o: hello.c
$(CC) $(CFLAGS) -c hello.c
clean:
rm -f hello hello.o
```
这个Makefile包含3个规则。第一个规则表示要生成名为hello的目标,它依赖于hello.o文件。它的命令是使用gcc编译器和选项来链接hello.o文件,生成可执行文件hello。
第二个规则表示要生成名为hello.o的目标,它依赖于hello.c文件。它的命令是使用gcc编译器和选项来编译hello.c文件,生成目标文件hello.o。
第三个规则表示要生成名为clean的伪目标,它没有依赖关系,其命令是删除所有生成的文件hello和hello.o。
使用make命令可以执行Makefile中的规则。例如,可以使用以下命令来编译并运行hello程序:
```
make
./hello
```
可以使用以下命令来清除所有生成的文件:
```
make clean
```
阅读全文