.ONESHELL目标(假的目标)对makefile没有影响
在确定之后 看看,以下特殊目标似乎遵循相同的语法规则: “.导出所有变量”.ONESHELL目标(假的目标)对makefile没有影响,makefile,Makefile,在确定之后 看看,以下特殊目标似乎遵循相同的语法规则: “.导出所有变量” Simply by being mentioned as a target... 。。。 ... ... “.ONESHELL” If '.ONESHELL' is mentioned as a target... 我尝试创建以下makefile: all: @foo=bar @echo "foo=$${foo}" .PHONY: all .PHONY: .ONESHELL 通过运行它,
Simply by being mentioned as a target...
。。。
...
...
“.ONESHELL”
If '.ONESHELL' is mentioned as a target...
我尝试创建以下makefile:
all:
@foo=bar
@echo "foo=$${foo}"
.PHONY: all
.PHONY: .ONESHELL
通过运行它,并获得:
foo=
这肯定不是“oneshell”执行的结果
因此,就语法规则而言,某些
特殊变量是否比其他变量更特殊?。ONESHELL
应作为目标提供,而不是作为您在问题中指定的先决条件。如果指定.ONESHELL:all
,则应获得foo=bar
的预期输出。这就是在以下makefile
上运行make
时得到的结果
.ONESHELL: all
.PHONY: all
all:
@foo=bar
@echo "foo=$${foo}"
如果我就你的问题提供的答案是正确的,你能接受它们吗?或者发表评论让我知道什么仍然是错误的?这确实是答案。2018年,我可以确认这项工作仍然很有魅力