makefile 问题备忘

来源:互联网 发布:如何做免费网络推广 编辑:程序博客网 时间:2024/06/05 03:15
一.备忘
1.
clean :
-rm edit $(objects)
而在rm命令前面加了一个小减号的意思就是,也许某些文件出现问题,但不要管,继续做后面的事。


2.通配符匹配只能在规则里面或者命令里面,变量里面不能直接使用通配符,只能够使用函数来做这些事情比如wildcard。


3.vpath


4. .c.o 
注意其中的 .c.o ,其实是 和 %o:%c 等价。是一个旧格式


5.$(var:<pattern>=<replacement>)
此格式的变量,将本来变量$var里面的pattern替换成replacement
相当于“$(patsubst %<suffix>,%<replacement>,$(var))”这个函数。
比如$var=foo.c abc.c
obj = $(var:.c=.o) 会将obj的值变为
obj = foo.o abc.o


6.伪目标
特殊的指明这是一个标签不是一个目标文件。因为可能出现我编译的目标里面有一个目标文件名字确实就是clean。
所以加上PHONY说明我下面定义的这个是一个伪目标只是一个标签,不需要生成,只需要执行命令
.PHONY : clean
clean :
-rm edit $(objects)


二.函数
2.1 跟字符串有关系的函数
subst patsubst strip findstring filter filter-out sort word wordlist words firstword




2.2 文件有关系的函数
1.dir notdir suffix basename addsuffix addprefix join
原创粉丝点击