在编写复杂的程序项目时,Makefile
是一个非常有用的工具,它能自动化构建过程。以下是一些基本的 Makefile
语法介绍:
-
基本结构:
target: dependencies command
target
:构建目标,通常是一个文件,如可执行文件。dependencies
:目标所依赖的文件或其他目标。command
:构建目标的命令,前面需要用制表符(Tab)缩进。
-
示例:
all: main.o utils.o gcc -o myprogram main.o utils.o main.o: main.c gcc -c main.c utils.o: utils.c gcc -c utils.c clean: rm -f *.o myprogram
all
是默认目标,当执行make
时会构建这个目标。clean
目标用来清理编译生成的文件。
-
变量:
CC = gcc CFLAGS = -Wall -g all: main.o utils.o $(CC) $(CFLAGS) -o myprogram main.o utils.o main.o: main.c $(CC) $(CFLAGS) -c main.c utils.o: utils.c $(CC) $(CFLAGS) -c utils.c
-
自动变量:
$@
:目标文件名$<
:第一个依赖文件名$^
:所有依赖文件名
示例:
all: myprogram myprogram: main.o utils.o $(CC) -o $@ $^ main.o: main.c $(CC) -c $< utils.o: utils.c $(CC) -c $<
-
伪目标:
clean
是一个伪目标,因为它不生成文件,只执行命令。可以通过.PHONY
声明:.PHONY: clean clean: rm -f *.o myprogram
这些基本语法帮助你创建简单而有效的 Makefile
,可以根据项目需求进一步深入探索更多功能。