Makefile CFLAGS 和 SRCS-y 在函数形式中被忽略

Makefile CFLAGS and SRCS-y are ignored in function form

我在制作 Makefile 时遇到了一些问题。这是 Makefile 的一部分。

dirs := fwd common bp bp_manager $(XRTE_HASH)
VPATH_ = $(foreach dir,$(dirs),$(SRCDIR)/$(dir))
INC_ = $(foreach dir,$(dirs),$(wildcard $(dir)/*.h))
CFLAGS_ = $(foreach dir,$(dirs),-I$(SRCDIR)/$(dir))   
SRCS-y_ = $(foreach dir,$(dirs),$(notdir $(wildcard $(dir)/*.c))) 
VPATH += $(VPATH_)
INC += $(INC_)
CFLAGS += $(CFLAGS_)
SRCS-y += $(SRCS-y_)

check: 
    echo $(CFLAGS)
    echo $(SRCS-y)

我以为Makefile 和csh 差不多。 你能解释一下为什么 "make" 会忽略函数吗? 谢谢

CFLAGS _ 只是一个字符串。 $(CFLAGS _) 是一个变量的值。所以你应该:

CFLAGS += $(CFLAGS_)
SRCS-y += $(SRCS-y_)