2017-08-03 760 views
0

我在Makefile中遇到了一些麻煩。這是Makefile的一部分。Makefile CFLAGS和SRCS-y在函數形式中被忽略

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」忽略函數嗎? 謝謝。

回答

0

CFLAGS_只是一個字符串。 $(CFLAGS_)是一個變量的值。所以你應該有:

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

謝謝,CFLAGS被糾正了,但是SRCS-y仍然有問題。 – user2541307