linux makefile
时间: 2023-10-13 14:26:07 浏览: 95
Makefile是一种文本文件,它包含了用于编译和构建程序的规则和指令。在Linux环境下,Makefile通常用于自动化构建程序,并简化编译过程。
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
```
在这个示例中,Makefile定义了一个CC变量,用于指定编译器为gcc;另一个CFLAGS变量用于指定编译选项,包括开启所有警告和调试信息。接下来是一个all规则,用于指定默认编译目标为program。program规则则指定了如何构建程序,包括将main.o和utils.o链接起来生成程序。同时,还有两个规则用于编译main.c和utils.c,它们分别依赖于对应的头文件utils.h。最后,Makefile还包含了一个clean规则,用于清除中间文件和生成的程序。
使用Makefile可以通过命令make来构建程序。例如,执行make all将会编译所有目标,并生成程序。执行make clean则会清除所有中间文件和程序。
阅读全文