4

我正在使用 clang-tidy 作为 linter (cmake -DCMAKE_CXX_CLANG_TIDY=clang-tidy) 构建一个 C++ 项目。

更新我的系统(Fedora 28->29,cmake 3.11->3.12 我相信)后,当 clang-tidy 报告一些 clang-diagnostic-error (我现在无法修复......)时,我无法再构建。我很确定 clang-diagnostic-error 并没有更早地中断构建......但我不能百分百确定。

编辑:更改发生在 clang-tidy 中,现在它在发现错误时返回非零退出代码。

是否可以抑制这些错误,类似于“-warnings-as-errors”的反面?

4

1 回答 1

1

不确定是否是解决方案或解决方法,但这可以解决问题(在我的操作系统中......):

cmake -DCMAKE_CXX_CLANG_TIDY="${PATH_TO_SCRIPT}/suppress_exit_status.sh;clang-tidy"

PATH_TO_SCRIPT to script 是 suppress_exit_status.sh 的绝对路径,如下所示:

#!/bin/sh
$@||echo Command \"$@\" failed with exit code $?

|| 是“或”运算符,第二个操作数仅在第一个操作数失败时执行。似乎 cmake 从命令中捕获标准错误并将其抛出,因此出现错误消息。

我想不出更优雅的方法来做到这一点,不可能||直接投入到 CMAKE_CXX_CLANG_TIDY 中。

于 2018-11-02T07:47:51.483 回答