Makefile 调用目标时如何更新变量?
我有一个变量,在调用虚假目标之前不应进行求值,因为它将有一个空值,例如:Makefile 调用目标时如何更新变量?,makefile,gnu-make,Makefile,Gnu Make,我有一个变量,在调用虚假目标之前不应进行求值,因为它将有一个空值,例如: VAR = /home/directory/file .PHONY: target target: $(mkdir -p /home/directory) $(touch /home/directory/file) 在目标后面加一个右键:: target: $(eval VAR = /home/directory/file) 并删除第一行(VAR=…) 呃,这个makefile没有任何作用:您不想使
VAR = /home/directory/file
.PHONY: target
target:
$(mkdir -p /home/directory)
$(touch /home/directory/file)
在目标后面加一个右键:
:
target:
$(eval VAR = /home/directory/file)
并删除第一行(
VAR=…
) 呃,这个makefile没有任何作用:您不想使用$(mkdir-p/home/directory)
,它试图扩展一个名为mkdir-p/home/directory
的make变量,该变量不存在,因此它会扩展为空字符串并被忽略。您只想直接编写shell命令,而不是将它们包含在$(…)
中。我认为这是一个XY问题。我认为你试图做的可能不是一种很好的做事方式,但你没有给我们足够的细节来帮助我们实现你的实际目标。