Makefile的奥秘:特殊使用pathsubst有什么问题?

问题描述

| 我的makefile包含以下片段(以及其他片段):
SRC = src
OBJ = obj

DEPS = $(wildcard $(SRC)/*.cpp)

# ...

all : $(BINARIES)
    @echo $(pathsubst $(SRC)/%.cpp,$(OBJ)/%.d,$(DEPS))
    @echo $(DEPS:$(SRC)/%.cpp=$(OBJ)/%.d)
当我
make all
时,只有第二个
@echo
输出:
$ make all 

obj/sample1.d obj/sample1_U.d 
(gnu make)手册指出:   另一种类型的替换引用使您可以使用patsubst函数的全部功能。它的格式与上述“ $(var:a = b)”相同,只是现在a必须包含单个“%”字符。这种情况等同于“ $(patsubst a,b,$(var))” 从这个解释中,我希望两个
@echo
语句产生相同的输出,但显然它们不会。使用显式“ 5”的第一种形式有什么问题? (我在OS X上使用ѭ6。)     

解决方法

大概您要7英镑,而不是5英镑。     

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...