在makefile的规则中使用通配符
在makefile的规则中使用通配符
make 支持三个通配符:
* : 星号(*)代替了一系列的文件,如 *.c 表示所有后缀为 c 的文件。~ :波浪号(~ )在文件名中有特殊用途,如 ~/test 当前用户的家目录下的test目录(Linux环境下)。?
注意:
CFILES = *.c
通配符同样可以用在变量中,但是 *.o 不会展开,所以CFILES的值就是 *.c 。在makefile中变量,相当于 C/C++ 中的宏,执行时,只是简单地替换。如果要让通配符在变量中展开,即让CFILES变量的值是文件夹中所有 .c 文件名的集合,需要像下面这样写:
CFILES := $(wildcard *.c)
注意:等号的写法是 :=
$(patsubst %.c,%.o,$(wildcard *.c))
可写出编译并链接所有 .c 和 .o 文件,如:
OBJECTS := $(patsubst %.c,%.o,$(wildcard *.c))app:$(OBJECTS) gcc -o app $(OBJECTS) .PHONY:cleanclean: -rm app $(OBJECTS)
谢谢阅读
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~