wildcard 用来明确表示通配符。因为在 Makefile 里,变量实质上就是 C/C++ 中的宏,也就是说,如果一个表达式如 objs = *.o ,则 objs 的值就是 *.o ,而不是表示所有的 .o 文件。若果要使用通配符,那么就要使用 wildcard 来声明 * 这个符号,使 * 符号具有通配符的功能。如下举例:

在当前目录下随意建立两个 *.c 文件,如 hello.c 和 world.c ,现在编写一个 Makefile 如下:

src = $(wildcard *.c /usr/src/linux-2.6.24/drivers/char/ip2/*.c)

all:
        @echo $(src)

运行输出:

make

hello.c world.c /usr/src/linux-2.6.24/drivers/char/ip2/i2cmd.c /usr/src/linux-2.6.24/drivers/char/ip2/i2ellis.c /usr/src/linux-2.6.24/drivers/char/ip2/i2lib.c /usr/src/linux-2.6.24/drivers/char/ip2/ip2.mod.c /usr/src/linux-2.6.24/drivers/char/ip2/ip2base.c /usr/src/linux-2.6.24/drivers/char/ip2/ip2main.c /usr/src/linux-2.6.24/drivers/char/ip2/ip2main.mod.c

上面输出了当前目录下的两个 .c 文件以及/usr/src/linux-2.6.24/drivers/char/ip2/ 目录下所有的 .c 文件。

https://blog.csdn.net/qq_32220231/article/details/52601032?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164734138216780261960401%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=164734138216780261960401&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allbaidu_landing_v2~default-5-52601032.142v2pc_search_insert_es_download,143v4control&utm_term=wildcard&spm=1018.2226.3001.4187

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐