在以下示例Makefile中:
EXTENS := .c .C .cc .c++ .cpp .cxx
SOURCES := 1.c 2.C 3.cc 4.c++ 5.cpp 6.cxx
OBJECTS := $(SOURCES)
REPLACE_EXTENS = $(foreach f,$(EXTENS),$(eval $(1) := $(patsubst %$(f),%.o,$($(1)))))
$(call REPLACE_EXTENS, OBJECTS)
all:
@echo $(SOURCES)
@echo $(OBJECTS)
我希望该行@echo $(OBJECTS)
输出:
1.o 2.o 3.o 4.o 5.o 6.o
但是,它什么也不输出。我做错了什么,正确的做法是什么?
更改$(call REPLACE_EXTENS, OBJECTS)
成$(call REPLACE_EXTENS,OBJECTS)
。调用参数之间没有空格。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句