makefile的编写
时间: 2023-11-07 18:05:03 浏览: 39
makefile 的编写
Makefile 是一种文件,用于告诉编译器如何编译和链接程序。下面是一个简单的 Makefile 示例:
```
CC=gcc
CFLAGS=-g -Wall
LFLAGS=-lm
all: my_program
my_program: main.o function1.o function2.o
$(CC) $(CFLAGS) -o my_program main.o function1.o function2.o $(LFLAGS)
main.o: main.c function1.h function2.h
$(CC) $(CFLAGS) -c main.c
function1.o: function1.c function1.h
$(CC) $(CFLAGS) -c function1.c
function2.o: function2.c function2.h
$(CC) $(CFLAGS) -c function2.c
clean:
rm -f my_program *.o
```
这个 Makefile 包含了几个规则:
1. `CC` 变量定义了编译器。在这个例子中,我们使用 GCC。
2. `CFLAGS` 变量定义了编译参数。在这个例子中,我们使用了 `-g` 和 `-Wall` 参数,表示编译时开启调试模式和开启所有警告。
3. `LFLAGS` 变量定义了链接参数。在这个例子中,我们使用了 `-lm` 参数,表示链接数学库。
4. `all` 规则定义了一个目标,`my_program`,它依赖于 `main.o`、`function1.o` 和 `function2.o`。当所有依赖都被满足时,`my_program` 将被编译和链接。
5. `my_program` 规则定义了如何编译和链接 `my_program`。在这个例子中,我们使用了 GCC 编译器和我们定义的编译、链接参数。
6. `main.o`、`function1.o` 和 `function2.o` 规则定义了如何编译每个源文件,以及它们各自的依赖关系。
7. `clean` 规则定义了如何删除生成的目标文件和可执行文件。
要使用这个 Makefile,只需要在命令行中输入 `make` 即可。它将自动检查每个规则的依赖关系,并根据需要重新编译和链接程序。要清除生成的目标文件和可执行文件,只需要在命令行中输入 `make clean`。
阅读全文