0

我在制作 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)
  • VPATH 和 INC 按我的预期工作。
  • CFLAGS 不包含 CFLAGS_
  • SRCS-y 是按照我的意图打印的,但是当“make”时它没有效果 - SRCS-y_ 与 null 相同。
  • 手动设置(无功能)时,CFLAGS 和 SRCS-y 没问题。

我认为 Makefile 与 csh 几乎相同。你能解释一下为什么“make”会忽略函数吗?谢谢。

4

1 回答 1

0

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

CFLAGS += $(CFLAGS_)
SRCS-y += $(SRCS-y_)
于 2017-08-03T03:45:22.810 回答