gpt4 book ai didi

Makefile 测试变量是否不为空

转载 作者:行者123 更新时间:2023-12-02 04:22:52 26 4
gpt4 key购买 nike

在 makefile 中我试图

  • 运行 shell 命令并捕获 make 变量中的输出
  • 如果变量不为空,则执行某些操作

我创建了这个简化的 makefile 来演示我的问题。 make amake b 都不会执行 if 的主体,我不明白为什么不执行。

.PHONY: a b

a:
$(eval MY_VAR = $(shell echo whatever))
@echo MY_VAR is $(MY_VAR)
$(info $(MY_VAR))
ifneq ($(strip $(MY_VAR)),)
@echo "should be executed"
endif
@echo done

b:
$(eval MY_VAR = $(shell echo ''))
@echo MY_VAR is $(MY_VAR)
$(info $(MY_VAR))
ifneq ($(strip $(MY_VAR)),)
@echo "should not be executed"
endif
@echo done

我正在使用

$ make --version
GNU Make 3.81

编辑:正如所指出的,变量不需要 make vars

最佳答案

如果您想动态测试 MY_VAR 的内容,您可能必须:

a:
$(eval MY_VAR = $(shell echo ''))
$(if $(strip $(MY_VAR)),echo ok,echo no)

if 如果 MY_VAR 不为空,评估将变为 echo ok,否则将变为 echo no

关于Makefile 测试变量是否不为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51535230/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com