[Linux系统编程]Makefile
-
Makefile简介
一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。 -
一个万能的Makefile
# 该Makefile基本上实用所有的程序管理 CPPFLAGS=-Iinclude CFLAGS=-g -Wall LDFLAGS= CC=gcc # wildcard通配符 SRC=$(wildcard *.c) # patsubst 字符串替换 OBJ=$(patsubst %.c,%.o,$(SRC)) EXEC=app # $@表示目标,$^表示所有依赖,$<表示依赖中的第一个 $(EXEC):$(OBJ) $(CC) $^ $(LDFLAGS) -o $@ %.o:%.c $(CC) -c $< $(CFLAGS) $(CPPFLAGS) -o $@ # 伪目标,主要是防止当前目录下有一个clean的文件 .PHONY:clean clean: -rm -f $(OBJ) #-代表这条执行失败依然会往下执行 -rm -f $(EXEC) @echo "clean completed." # @代表不输出该条执行