【问题标题】:make aborting because zip exits with status 12中止,因为 zip 以状态 12 退出
【发布时间】:2013-10-08 15:51:58
【问题描述】:

make 在尝试 zip -u 某些文件后正在停止并报告错误代码 12。

错误代码 12 实际上是 zip 的退出状态,表示它“无事可做”。

我不明白为什么这是一个非零退出状态。让 zip 安静地什么都不做不是更合适吗?如果 zip 无关紧要,这似乎不是一个实际问题。

我可以抑制它:通过调用 -zip -u 告诉 make 忽略 zip 中的非零退出状态。但这种方法的问题在于 12 是我想忽略的唯一退出状态。所有其他人都表示实际问题会导致我想要中止make

也许我可以设置一个等于 echo $? 的输出的变量,然后测试 0 或 12,但在 .mk 文件中的每个 zip 语句之后执行此操作似乎很麻烦。

有没有优雅的方法来处理这个问题?

【问题讨论】:

  • 没有什么比你想象的更优雅了。您可以完全忽略错误,也可以检查您认为不是真正错误的具体错误。

标签: unix makefile zip


【解决方案1】:

Err... 作为一种快速而肮脏的解决方案,您可以使用 shell 包装器:

#!/bin/ksh

zip "$@"
rc=$?

if [[ rc -eq 12 ]]; then
    exit 0
fi

exit $rc

或者,您可以几乎在 Makefile 中执行相同的内联,但它看起来有些难看(必须是带有重复 $ 符号等的 shell 单行)

【讨论】:

    猜你喜欢
    • 2017-08-22
    • 1970-01-01
    • 2021-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-30
    • 2022-06-21
    • 2010-10-09
    相关资源
    最近更新 更多