我在理解gmake语法后遇到了一些问题:
OBJ = foo.o bar.o
$(OBJ): %.o: %.cpp
$(CC) -c -MMD -MP $(INCLUDES) $(CFLAGS) $< -o $@
@sed (...create empty targets in file...)
我不确定$(...):%。o:%。cpp会做什么!?
我认为它可能会在正确的%.cpp依赖项中翻译“%。o:%。cpp” - 是吗?谷歌在这里没什么帮助 - 它只找到通常的双冒号(目标::)这是不同的东西!
有什么建议吗?谢谢!
答案 0 :(得分:6)
$(OBJ)
是一系列目标。 %.o : %.cpp
表示“对于列表中与%.o
匹配的每个目标,它取决于%.cpp
”(相应地替换%
)。