makefile菜鸟教程
时间: 2023-07-01 15:10:13 浏览: 44
Makefile 是一个用来自动化编译程序的工具。它可以根据源文件的依赖关系自动编译出相应的目标文件。下面是一个简单的 Makefile 示例:
```
CC=gcc
CFLAGS=-Wall -g
all: program
program: main.o utils.o
$(CC) $(CFLAGS) -o program main.o utils.o
main.o: main.c utils.h
$(CC) $(CFLAGS) -c main.c
utils.o: utils.c utils.h
$(CC) $(CFLAGS) -c utils.c
clean:
rm -f program *.o
```
下面是每部分的解释:
- `CC` 和 `CFLAGS` 是 Makefile 中定义的变量,分别表示编译器和编译选项。
- `all` 是 Makefile 中的默认目标,表示执行 `make` 命令时默认要生成的目标。
- `program` 是要生成的目标文件名。
- `main.o` 和 `utils.o` 是中间文件,用于生成目标文件。
- `main.c` 和 `utils.c` 是源文件。
- `utils.h` 是头文件。
- `$(CC)` 和 `$(CFLAGS)` 是 Makefile 中的变量替换,表示使用 `$CC` 和 `$CFLAGS` 变量中定义的值。
- `-o` 表示输出文件名,`-c` 表示只编译不链接。
- `clean` 是清理目标,表示执行 `make clean` 命令时要执行的操作。
使用方法:
1. 将上述代码复制到一个名为 `Makefile` 的文件中。
2. 在终端中进入该文件所在的目录。
3. 执行 `make` 命令,即可自动编译生成 `program` 可执行文件。
4. 执行 `make clean` 命令,即可清理生成的文件。
注意:在 Makefile 中必须使用 Tab 键来缩进,不能使用空格键。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)