如果未设置环境变量,是否会导致makefile出错?

如果未设置环境变量,是否会导致makefile出错?,makefile,environment-variables,virtualenv,gnu-make,Makefile,Environment Variables,Virtualenv,Gnu Make,如果未设置环境变量,我希望生成文件崩溃。这就是我到目前为止所做的: ifneq ($(shell echo $${VIRTUAL_ENV:+True}),True) $(error Looks like no virtualenv is active) endif 而且它有效 我想知道是否有一种更优雅的方法可以做到这一点,也许是直接使用make而不是调用$(shell…) 谢谢你的帮助 您可以使用该功能 ifeq ($(origin VIRTUAL_ENV),undefined) $(erro

如果未设置环境变量,我希望生成文件崩溃。这就是我到目前为止所做的:

ifneq ($(shell echo $${VIRTUAL_ENV:+True}),True)
$(error Looks like no virtualenv is active)
endif
而且它有效

我想知道是否有一种更优雅的方法可以做到这一点,也许是直接使用make而不是调用
$(shell…

谢谢你的帮助

您可以使用该功能

ifeq ($(origin VIRTUAL_ENV),undefined)
$(error Looks like no virtualenv is active)
endif
你可以利用这个功能

ifeq ($(origin VIRTUAL_ENV),undefined)
$(error Looks like no virtualenv is active)
endif

这可能是最简单的选择,但不如使用
origin
进行微调

ifndef VIRTUAL_ENV
$(error Looks like no virtualenv is active)
endif
这里需要注意的一点是,您无法区分是在Makefile中定义的还是在环境中定义的
VIRTUAL_ENV


正如@KurtisRader在一篇文章中指出的,这是可能的,因为环境变量被隐式地“导入”到make的命名空间中。

这可能是最简单的选择,但没有使用
origin
进行微调

ifndef VIRTUAL_ENV
$(error Looks like no virtualenv is active)
endif
这里需要注意的一点是,您无法区分是在Makefile中定义的还是在环境中定义的
VIRTUAL_ENV


正如@KurtisRader在a中指出的,这是可能的,因为环境变量隐式地“导入”到make的命名空间中。

同样值得注意的是,环境变量隐式地“导入”到make的命名空间中,这就是为什么这个答案有效的原因:。同样值得一提的是,OP指向了
origin
的文档:同样值得一提的是,环境变量隐式地“导入”到make的命名空间中,这就是为什么这个答案有效的原因:。还值得将OP指向
origin
的文档: