通配符在makefile中的含义是什么?

Abh*_*pta 10 makefile

我在makefile教程中找到了以下几行,但是我对粗线有些问题.

在一行,如果我写

program_C_SRCS:=$(*.c)
Run Code Online (Sandbox Code Playgroud)

这是行不通的.所以请告诉我在这里做什么是通配符.这个词是否仅限于makefile?

在教程中写道,第二行将执行测试替换.谁能告诉我一些关于这个文本替换的事情?

如果我的问题非常基础,请原谅我,因为我是新手制作文件.

教程链接

CC:=g++
program_NAME:=myprogram
**program_C_SRCS:=$(wildcard *.c)**  # 1 line 
program_CXX_SRCS:=$(wildcard *.cc)
**program_C_OBJ:=$(program_C_SRCS:.c=.o)** # 2 line
program_CXX_OBJ:=$(program_CXX_SRCS:.c=.o)
program_OBJ:= $(program_C_OBJ) $(program_CXX_OBJ)
Run Code Online (Sandbox Code Playgroud)

Bet*_*eta 13

假设您有两个源文件.foo.cbar.c.

program_C_SRCS:=$(wildcard *.c) # 1 line
Run Code Online (Sandbox Code Playgroud)

wildcard函数是Make语法.变量program_C_SRCS现在将具有值foo.c bar.c(可能不按该顺序).

program_C_OBJ:=$(program_C_SRCS:.c=.o) # 2 line
Run Code Online (Sandbox Code Playgroud)

这是替代参考.它转换文本,用另一个子串替换一个子串.变量program_C_OBJ现在具有值foo.o bar.o.