在makefile的规则中使用通配符
【摘要】 make 支持三个通配符:
* : 星号(*)代替了一系列的文件,如 *.c 表示所有后缀为 c 的文件。~ :波浪号(~ )在文件名中有特殊用途,如 ~/test 当前用户的家目录下的test目录(Linux环境下)。?
注意:
CFILES = *.c
1
通配符同样可以用在变量中,但是 *.o 不会展开,所以CFILES的值就是 *.c 。在makefil...
make 支持三个通配符:
- * : 星号(*)代替了一系列的文件,如 *.c 表示所有后缀为 c 的文件。
- ~ :波浪号(~ )在文件名中有特殊用途,如 ~/test 当前用户的家目录下的test目录(Linux环境下)。
- ?
注意:
CFILES = *.c
- 1
通配符同样可以用在变量中,但是 *.o 不会展开,所以CFILES的值就是 *.c 。在makefile中变量,相当于 C/C++ 中的宏,执行时,只是简单地替换。如果要让通配符在变量中展开,即让CFILES变量的值是文件夹中所有 .c 文件名的集合,需要像下面这样写:
CFILES := $(wildcard *.c)
- 1
注意:等号的写法是 :=
$(patsubst %.c,%.o,$(wildcard *.c))
- 1
可写出编译并链接所有 .c 和 .o 文件,如:
OBJECTS := $(patsubst %.c,%.o,$(wildcard *.c))
app:$(OBJECTS) gcc -o app $(OBJECTS) .PHONY:clean
clean: -rm app $(OBJECTS)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
谢谢阅读
文章来源: blog.csdn.net,作者:WongKyunban,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/weixin_40763897/article/details/103124654
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)