关于makefile的一些基础的、全面的知识点(包括规则、伪目标等)
时间: 2023-12-02 17:02:13 浏览: 31
Makefile是一种构建工具,用于自动化编译程序。下面是一些Makefile的基本知识点:
1. 规则:Makefile中最基本的部分就是规则。规则有两个部分,即目标和依赖。目标是要生成的文件,依赖是生成目标文件所需要的文件。例如:
```
hello: hello.c
gcc -o hello hello.c
```
这个规则中,hello是目标文件,hello.c是依赖文件。当执行make命令时,如果hello.c文件有更新,就会执行后面的命令,生成hello可执行文件。
2. 伪目标:有时我们需要定义一些不是文件的目标,这时可以使用伪目标。伪目标的作用是表示一个动作,而不是一个实际的文件。例如:
```
clean:
rm -f *.o
```
这个规则中,clean是一个伪目标,它表示执行rm -f *.o命令,删除所有.o文件。执行make clean命令就会执行这个规则。
3. 变量:Makefile中可以定义变量,以$符号引用变量的值。例如:
```
CC = gcc
CFLAGS = -Wall -O2
hello: hello.c
$(CC) $(CFLAGS) -o hello hello.c
```
这个Makefile中,CC和CFLAGS是变量,$(CC)和$(CFLAGS)表示它们的值。这样做的好处是可以方便地修改编译器和编译选项。
4. 函数:Makefile中还可以定义函数,函数名以$符号开始。例如:
```
$(subst o,c,hello.o world.o)
```
这个函数的作用是将字符串"hello.o world.o"中的所有o替换为c,返回"hello.c world.c"。
5. include指令:Makefile中可以使用include指令引入其他Makefile文件。例如:
```
include header.mk
```
这个指令会将header.mk文件中的规则和变量加入当前Makefile中。
以上是Makefile的一些基础知识点,掌握了这些知识,就可以编写简单的Makefile文件了。