【问题标题】:Makefile Throws Error Even When In If Block即使在 If 块中,Makefile 也会引发错误
【发布时间】:2021-01-18 09:30:04
【问题描述】:

我有一个验证函数,我想在验证失败时抛出错误。这是我使用的代码:

define validate
    if [ condition... ]; then \
        echo "ERROR"; \
        $(error Validation failed); \
    fi; \
    echo "NOERROR";
endef

我遇到的问题是,即使条件为假,错误仍然会被抛出。当我删除错误并运行函数时,我可以看到 echo 'ERROR' 没有显示。

为什么会这样?

【问题讨论】:

    标签: bash makefile gnu-make gnu


    【解决方案1】:

    这是因为$(error) 是一个make 函数,并且在将所有此语句传递给shell 之前进行了评估。如果您想从 shell 中失败,请改用 exit 1

    【讨论】:

      猜你喜欢
      • 2016-01-04
      • 1970-01-01
      • 1970-01-01
      • 2020-03-22
      • 2022-11-27
      • 2014-06-13
      • 1970-01-01
      相关资源
      最近更新 更多