Linuxc基础 二十一

makefile

makefile 文件 ===> 文件名:makefile 或者 Makefile

1、makefile的规则
书写规则:
目标文件:依赖文件
(一个tab键) 命令
命令前面的tab键不能用空格代替
目标文件	最终要生生成的文件
依赖文件	为了生成目标文件需要的文件
命令	通过依赖文件生成目标文件的方法

运行:执行 make 命令,执行命令的时候可以加 “-n”,代表不真正执行命令,只是预览要执行的命令

伪目标的写法:
目标:(空的)
	命令
伪目标不会生成目标文件,执行 :make 名字 执行相应命令
常用:
clean	清除相关文件
all/ALL	最终要生成的目标,不要写命令
clean的命令前可以加‘-’,目的:当删除某些文件失败的时候,可以让命令继续执行下去


执行规则:
1、如果目标文件的时间早于依赖文件,则重新生成目标文件
2、如果依赖文件不存在,则会去找相应的规则生成依赖文件

2、函数
   makefile中变量不需要类型,例如:src=abc
   取变量的值用 $(变量)  ===>   $(src)    ===>   abc
wildcard	$(wildcard   *.c)	匹配当前目录下所有.c 文件
patsubst	$(patsubst %.c,  %.o , $(src))	
src = $(wildcard   *.c)                        ==> src =  main.c  add.c  mul.c  sub.c
obj= $(patsubst %.c,  %.o , $(src))    ==> obj =  main.o  add.o  mul.o  sub.o 

3、自动变量
$(@)	代表规则中的目标文件
$(^)	代表规则中的所有依赖文件
$(<)	代表规则中的第一个依赖文件

模式匹配:
	%.o:%.c

注意:

伪目标最好写在.PHONY后面声明一下,否则如果当前文件夹下存在和伪目标相同的文件,则伪目标将失效

猜你喜欢

转载自blog.csdn.net/qq_41936758/article/details/84794691