我正在尝试编译一组目标。然而它似乎只做第一个。下面是我的makefile的缩写,显示错误。
OBJECTS = abc def ghi
SOURCES = abc.c def.c ghi.c
$(OBJECTS): $(SOURCES)
@echo target is $@, source is $<
在shell中,
$ touch abc.c def.c ghi.c
$ make
当我运行make时,我得到以下输出:
target is abc, source is abc.c
所以它似乎只是在运行第一个目标。
如果我更换$&lt;使用$ ^,输出为:
target is abc, source is abc.c def.c ghi.c
我的问题是,是否可以使用(%:%)模式对变量进行扩展?
答案 0 :(得分:20)
试试这个:
OBJECTS = abc def ghi
all: $(OBJECTS)
$(OBJECTS):%:%.c
@echo target is $@, source is $<
麻烦是