如果未设置变量,则遵循Abort makefile 中的建议我尝试使用ifndef但它不起作用。
生成文件:
foo:
ifndef BAR
$(error "Must set BAR")
endif
Run Code Online (Sandbox Code Playgroud)
但make foo BAR=quux不起作用:
Makfile:2: *** "Must set BAR". Stop.
Run Code Online (Sandbox Code Playgroud)
是什么赋予了?是空格问题吗?还是我完全误解了?
(我正在使用 GNU Make)
我也试过:
foo:
ifndef BAR
$(error "Must set BAR")
endif
echo $(BAR)
Run Code Online (Sandbox Code Playgroud)
这似乎是一种工作,但ifndef如果调用 Makefile 中更下方的目标(不需要设置变量),仍然会导致调用。