我的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)'相同的形式,但现在必须包含单个'%'字符.这种情况相当于'$(patsubst a,b,$(var))'
根据这个解释,我希望这两个@echo语句产生相同的输出,但他们显然没有.使用显式的第一个表单有什么问题pathsubst?
(我gnu make 3.81在OS X上使用.)
| 归档时间: | 
 | 
| 查看次数: | 1334 次 | 
| 最近记录: |