如何解决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英镑。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。