Makefile 当我使用未设置的变量时,可以发出警告吗?

Makefile 当我使用未设置的变量时,可以发出警告吗?,makefile,Makefile,当我使用未设置的变量时,有没有办法让make抱怨?类似于bash中的set-u 我刚刚花了二十分钟调试Makefile,因为变量名称中有一个符号输入错误。是的,有一种方法: make --warn-undefined-variables 我刚刚用make version3.81对它进行了测试 编辑: 您还可以在makefile中设置它,以保护自己在将来不会犯愚蠢的错误。 要做到这一点,只需将其放在makefile顶部附近的某个位置(这也将传递给递归make进程): 下面是一个如何做到让它立即失

当我使用未设置的变量时,有没有办法让make抱怨?类似于bash中的
set-u

我刚刚花了二十分钟调试Makefile,因为变量名称中有一个符号输入错误。

是的,有一种方法:

make --warn-undefined-variables
我刚刚用make version3.81对它进行了测试

编辑:

您还可以在makefile中设置它,以保护自己在将来不会犯愚蠢的错误。 要做到这一点,只需将其放在makefile顶部附近的某个位置(这也将传递给递归make进程):


下面是一个如何做到让它立即失败的方法:

ifndef PSWD
$(error PSWD is undefined)
endif

如果
if
$(error…
的一些组合应该可以为您完成。您知道是否有一种方法可以在Makefile本身中触发它,而不是使用命令行选项吗?是的,您也可以将其放入Makefile中,请查看我的答案的编辑。顺便说一句,您不应该使用+=而不是=?我仍然对make的赋值运算符感到困惑。但是,在
Makefile
中设置它不会触发类似
$(info$(UNUSED))
之类的警告。。(GNU Make 4.2.1)
ifndef PSWD
$(error PSWD is undefined)
endif