在makefile的使用中,通常我们按照模版来使用就可以了,但是在很多时候,我们需要注意我们的一些细节部分和语法部分,以下稍作总结,会把我们需要注意的部分做持续更新。
1 在第四版Makefile中,我们隆重推出了两个函数:wildcard(通配符)和patsubst(替换通配符)
wildcard:(看实例,不难理解)
扩展通配符,搜索指定文件。在此我们使用src = $(wildcard ./*.c),代表在当前目录下搜索所有的.c文件,并赋值给src。函数执行结束后,src的值为:main.c fun1.c fun2.c。
patsubst:替换通配符,按指定规则做替换。
注意,我们今天的两个关键字类似于函数,所以要考虑参数问题。
在此我们使用obj = $(patsubst %.c, %.o, $(src))代表将src里的每个文件都由.c替换成.o。函数执行结束后,obj的值为main.o fun1.o fun2.o,其实跟第三版Makefile的obj值一模一样,只不过在这里它更智能一些,也更灵活。
除了使用patsubst函数外,我们也可以使用模式规则达到同样的效果,比如:obj = $(src:%.c=%.o)也是代表将src里的每个文件都由.c替换成.o。