我在makefile教程中找到了以下几行,但是粗体行有一些问题。

在1行中,如果我写

program_C_SRCS:=$(*.c)


这是行不通的。所以请告诉我什么
在这里做通配符。这个词仅特定于makefile吗?

在教程中,第二行将执行测试替换。谁能告诉我一些有关此文本替换的信息?

如果我的问题很基本,请原谅我,因为我是新来做文件塞的人。

link of tutorial

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)

最佳答案

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

program_C_SRCS:=$(wildcard *.c) # 1 line


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

program_C_OBJ:=$(program_C_SRCS:.c=.o) # 2 line


这是substitution reference。它转换文本,用另一个子字符串替换。变量program_C_OBJ现在具有值foo.o bar.o

10-08 05:38