如何在CMake构建失败时让Shell脚本自动退出?
实现CMake构建失败时自动退出Shell脚本的方法
有两种简单的方式可以实现这个需求,根据你的场景选择即可:
方法一:全局开启错误自动退出
在脚本开头加入set -e,这条命令会让Shell脚本在**任何命令执行失败(返回非零退出码)**时立刻终止,不再执行后续语句。CMake在构建失败时会返回非零值,刚好适配这个逻辑。
示例脚本:
#!/bin/bash set -e # 配置CMake项目 cmake .. # 执行构建操作 cmake --build . # 下面的命令只有前面的CMake操作全部成功才会执行 echo "构建成功,开始执行后续任务..."
方法二:为单个命令绑定退出逻辑
如果不想全局启用错误退出(比如脚本里有允许失败的命令),可以给每个CMake命令单独添加失败退出的逻辑,用|| exit 1实现:
示例脚本:
#!/bin/bash # 配置CMake,失败则直接退出脚本 cmake .. || exit 1 # 执行构建,失败则直接退出脚本 cmake --build . || exit 1 # 后续命令仅在前面操作成功时运行 echo "构建完成,继续执行后续步骤..."
说明:exit 1中的数字是退出码,你可以根据需要换成其他非零值(非零通常代表错误状态),方便后续排查问题。
内容的提问来源于stack exchange,提问作者manasvb
相关产品推荐
相关产品推荐

