解析此makefile时,Make冻结

解析此makefile时,Make冻结,makefile,gnu-make,Makefile,Gnu Make,值得一提的是,这里有一个将永远运行的makefile: #我们要创建一个目录“D”。因此,请删除“常规”文件“D”。 $(壳牌rm-rf D) #“x”将不存在,因此Make可能会在VPATH目录中“搜索”它 $(壳牌rm-rf x) $(shell mkdir D) #最后,创建'D/x',希望Make将与'x'关联起来。 $(shell touch D/x) VPATH=D #“x”是一个目标,需要执行一些(-可以是任何!-)配方! x::;:废话 .无声:D/x #针对目标“x”的特定于目

值得一提的是,这里有一个将永远运行的makefile:

#我们要创建一个目录“D”。因此,请删除“常规”文件“D”。
$(壳牌rm-rf D)
#“x”将不存在,因此Make可能会在VPATH目录中“搜索”它
$(壳牌rm-rf x)
$(shell mkdir D)
#最后,创建'D/x',希望Make将与'x'关联起来。
$(shell touch D/x)
VPATH=D
#“x”是一个目标,需要执行一些(-可以是任何!-)配方!
x::;:废话
.无声:D/x
#针对目标“x”的特定于目标的分配
x:foo=
运行时,您将得到一个永远不会结束的冻结过程,除非被致命信号突然中止


为什么?

抓得好。不确定发生了什么,但make肯定陷入了某种循环。我认为在解析/处理这个问题时,它可能会在某个时候破坏内存。3.81、3.82、4.0和4.1也是如此。