makefile之通配符(4)

如果我们想定义一系列比较类似的文件,我们很自然地就想起使用通配符。make支持三个通配符:“*”,“?”和“~”。这是和Unix的B-Shell是相同的。

波浪号(“~”)字符在文件名中也有比较特殊的用途。如果是“~/test”,这就表示当前用户的$HOME目录下的test目录。而 “~hchen/test”则表示用户hchen的宿主目录下的test目录。(这些都是Unix下的小知识了,make也支持)而在Windows或是 MS-DOS下,用户没有宿主目录,那么波浪号所指的目录则根据环境变量“HOME”而定。

通配符代替了你一系列的文件,如“*.c”表示所有后缀为c的文件。一个需要我们注意的是,如果我们的文件名中有通配符,如:“*”,那么可以用转义字符“\”,如“\*”来表示真实的“*”字符,而不是任意长度的字符串。

make有几个常用的特殊通配符:

$@:所有目标的文件

$^:所有依赖文件

$<:第一个依赖文件

$?:所有更新过的依赖文件

举例:创建makefile,输入

扫描二维码关注公众号,回复: 2918100 查看本文章

test:*.o
    gcc -o $@ $^

*.o:*.c
    gcc -c $^

猜你喜欢

转载自blog.csdn.net/lushoumin/article/details/81903700