gmake通配符函数不生成目标

gmake wildcard function not generating target

我在 Windows 上使用 MinGW 上的 gmake。这是 makefile 的片段:

SRCS = ..\path\to\srcs\*.c*
SRCS := $(wildcard $(SRCS))
OBJS := $(addsuffix .o,$(basename $(SRCS)))

$(OBJS) : $(SRCS)
    $(CC) $(FLGAS) $(INCLUDES) "$<"

我得到以下信息:

gmake: *** No targets. Stop.

例如,如果我将 SRCS 定义为 ..\path\to\srcs\a.c,它就可以工作。 我使用 wildcard 的方式是否正确?

我正在使用 GNU Make 3.81

make 不能很好地处理反斜杠;您需要将每个加倍,或者(更好)改用正斜杠。

不过,您的配方覆盖了 built-in 从 C 文件创建目标文件的规则,但有一个损坏的文件。 您的食谱声称所有 $(OBJS) 都将从一个编译中生成,该编译将所有 $(SRCS) 作为依赖项,但只读取第一个 ($< pro $^)。最好只说出你想要什么,然后让 make 从那里拿走它。

.PHONY: all
all: $(OBJS)
%.o: ../path/to/srcs/%.c