在Linux中,Makefile是一个包含一系列目标和依赖关系的文件,用于告诉make命令如何编译和构建代码。Makefile通常包含以下内容:
定义变量:可以定义一些变量,用于存储编译过程中需要使用的参数,例如编译器名称、编译选项等。
定义规则:规则由一个目标、一个冒号和一个或多个依赖项组成。目标是生成的文件,依赖项是生成目标所需的文件或其他目标。规则告诉make命令如何生成目标文件。
命令:规则后面可以跟着一行或多行命令,用于执行构建过程。这些命令通常是编译器命令或复制命令等。
示例Makefile:
CC = gcc
CFLAGS = -Wall
all: program
program: main.o func.o
$(CC) $(CFLAGS) -o program main.o func.o
main.o: main.c
$(CC) $(CFLAGS) -c main.c
func.o: func.c
$(CC) $(CFLAGS) -c func.c
clean:
rm -f *.o program
上面的示例Makefile定义了变量CC和CFLAGS,然后定义了三个规则:all、program和clean。all规则指定了目标为program,依赖于main.o和func.o,执行命令为编译链接这两个目标文件生成可执行文件program。clean规则用于清除生成的目标文件和可执行文件。
要使用Makefile构建项目,只需在项目目录下运行make命令即可。make命令会根据Makefile中的规则和依赖项来编译和构建代码。