Makefile中的foreach不显示文件列表

时间:2014-03-05 23:45:28

标签: linux foreach makefile

所有

为什么以下3行Makefile根本不显示任何文件; 即使我知道$(SOURCE)目录中有文件。 没有语法错误。

提前谢谢


SOURCE := src

CFILES := $(foreach, dir, $(SOURCE) , $(notdir $(wildcard $(dir)/*.c)))

all:    
        echo "$(CFILES)"

Phi Luu

1 个答案:

答案 0 :(得分:0)

首先,您在foreach后面有一个逗号,而不是您想要的。

其次,你必须非常小心makefile中的空格。 makefile中的任何尾随空格(包括在函数中)都将保留为单词的一部分。

将其重写为:

CFILES := $(foreach dir,$(SOURCE),$(notdir $(wildcard $(dir)/*.c)))

另一种选择是:

CFILES := $(wildcard $(addsuffix /*.c,$(SOURCE)))