make是一个用来解释Makefile命令的一个工具,他可以便捷的完成编译链接的功能,在实际的开发中可以提高效率。
make是一个“自动编译管理器”,为什么叫自动呢?是因为它可以根据时间戳来编译文件。
在Makefile中它的格式是
目标:依赖
命令
下面就是Makefile的代码实现
SRC = $(wildcard *.c)
OBJ = $(patsubst %.c , %.o , $(SRC))
CC = gcc
CFLAGS = -c -g -Wall
# %.c->%.o %.o->test
test:$(OBJ)
$(CC) $^ -o $@
%.o:%.c
$(CC) $(CFLAGS) $^
.PHONY:clean
clean:
$(RM) *.o
值得注意的是:
1.Makefile中需要分两步进行,先要将所有.C文件编译成.o文件,然后再将所有.o文件进行链接。
编译和链接过程分为两步可以提高编译速度、实现模块化编程和代码重用,同时也方便了代码的管理和维护。(在代码进行修改后,,再次编译就只会编译修改的那部分,然后再重新链接)
2.需要灵活的使用wildcard函数和patsubst函数
3.对于删除所有.o文件,需要先建立一个伪目标
这份Makefile文件可以实现将同一目录下的所有.C文件进行编译链接