【发布时间】:2013-01-01 17:37:03
【问题描述】:
当我使用未设置的变量时,有没有办法让 make 抱怨?类似于 bash 中的 set -u 的东西?
我刚刚花了 20 分钟调试我的 Makefile,因为变量名称中有一个符号拼写错误。
【问题讨论】:
-
if和$(error ...)的某种组合应该可以帮到你。
标签: makefile
当我使用未设置的变量时,有没有办法让 make 抱怨?类似于 bash 中的 set -u 的东西?
我刚刚花了 20 分钟调试我的 Makefile,因为变量名称中有一个符号拼写错误。
【问题讨论】:
if 和 $(error ...) 的某种组合应该可以帮到你。
标签: makefile
是的,有办法:
make --warn-undefined-variables
我刚刚使用 make 版本 3.81
对其进行了测试编辑:
你也可以在你的 makefile 中设置它,以保护你自己在未来免受愚蠢的错误。 为此,只需将其放在 makefile 顶部附近的某个位置(这也将传递给递归 make 进程):
MAKEFLAGS=--warn-undefined-variables
【讨论】:
Makefile 中设置它不会触发$(info $(UNUSED)) 之类的警告.. (GNU Make 4.2.1)
--error-undefined-variables存在
以下是如何使 make 立即失败:
ifndef PSWD
$(error PSWD is undefined)
endif
【讨论】: