我试图理解GNU make的多行define
指令,但我不能。例如:GNU make中的多行定义
define A
1
2
endef
all:
@echo W=$(word 1,$(A))
运行make
产生一个结果我期望的最小:
W=1
make: 2: Command not found
make: *** [all] Error 127
似乎的$(A)
那部分具有$(word)
功能外溢出。
这是一个错误或预期的行为?如果“泄漏”是故意的,它是如何起作用的?
P.S. Linux/x64上的GNU make v3.81
我不是询问'$(word)'函数。我要求解释'make:2:Command not found'错误信息。我对如何/为什么“2”出现在函数外面并进入make的执行流程感兴趣。这是我所问的问题。 – Dummy00001
您问过“$(A)'的部分溢出$(word)函数外部”。我只是回答了这个问题......虽然我现在看到答案没有在我写的内容中得到充分解释(尽管它在那里)。等一下。 –
不,这不是一个真正的答案。这基本上是官方(主题模糊)文件的推断,根本没有解决含糊不清的问题。我开始认为这只是实现多行定义时的一个错误。例如,尝试在'echo'命令的末尾添加分号并查看错误消息的更改方式。 (如果在Linux下,使用'strace -ff -e execve'运行以查看它的所有荣耀中的废话。) – Dummy00001