用户态的代码的Makefile
时间: 2024-03-15 10:46:10 浏览: 84
好的,让我为您介绍一下在 Linux 系统中编写用户态代码的 Makefile。
Makefile 是一个用于自动化编译和链接程序的文件。它描述了源代码文件、目标文件和依赖关系之间的关系。下面是一个简单的 Makefile 示例,可以用于编译 `oom.c` 程序:
```
CC=gcc
CFLAGS=-Wall -Wextra -pedantic -std=c99
all: oom
oom: oom.o
$(CC) -o $@ $^
oom.o: oom.c
$(CC) -c $(CFLAGS) $<
clean:
rm -f *.o oom
```
该 Makefile 包含了以下几个部分:
1. 定义了 C 编译器的名称和编译选项。
```
CC=gcc
CFLAGS=-Wall -Wextra -pedantic -std=c99
```
2. 定义了一个 `all` 目标,用于编译所有目标文件。
```
all: oom
```
3. 定义了一个 `oom` 目标,用于链接 `oom.o` 目标文件并生成可执行文件。
```
oom: oom.o
$(CC) -o $@ $^
```
4. 定义了一个 `oom.o` 目标,用于编译 `oom.c` 源代码文件并生成目标文件。
```
oom.o: oom.c
$(CC) -c $(CFLAGS) $<
```
5. 定义了一个 `clean` 目标,用于删除所有目标文件和可执行文件。
```
clean:
rm -f *.o oom
```
使用以下命令可以在当前目录下生成可执行文件 `oom`:
```
make
```
使用以下命令可以删除所有目标文件和可执行文件:
```
make clean
```
注意:在编写 Makefile 时,请注意缩进格式。Makefile 的命令必须以一个 Tab 键开始。
阅读全文