有 make 命令退出 1
Posted
技术标签:
【中文标题】有 make 命令退出 1【英文标题】:Have make command exit 1 【发布时间】:2018-04-03 00:55:03 【问题描述】:我正在尝试使用 Make 命令引发错误。这是我的makefile:
exit:
val=1
exit $(val)
但是,当我运行 make exit && echo $?
时,它给了我退出代码 0。我期待退出代码 1。
我用错了吗?欣赏它。
【问题讨论】:
【参考方案1】:-
Makefile 目标“脚本”不像真正的脚本那样运行,而是在单独的 shell 中运行每个命令。
您需要使用额外的美元符号来转义 makefile 中的美元符号。
在目标外部声明并使用
$(name)
引用的makefile 变量与在目标内部声明为命令的一部分并使用$$name
引用的shell 变量之间存在根本区别。
你想要的是一个等同于val=1 && exit $val
的命令:
exit:
val=1 && exit $$val
或在简单命令中使用的 makefile 变量:
val = 1
exit:
exit $(val)
【讨论】:
如果我使用 makefile 变量,我可以在出口内重新分配/更新它吗? 例如:val=0 exit: val=1 exit $(val)
混合 makefile 和 shell 变量是个坏主意,而且可能不会像您期望的那样工作。但是,如果您愿意,请尝试一下。您可能希望将生成的 makefile 发布到 Code Review 以获得一些反馈。以上是关于有 make 命令退出 1的主要内容,如果未能解决你的问题,请参考以下文章