首页 > 解决方案 > Clang-Tidy:在添加参数时解决 No Match 错误

问题描述

我正试图让铿锵有力的工作来分析我的代码。目前,我有这个命令:

clang-tidy file.C -- -I/all/my/include/files -L/all/my/libs <any_other_args_i_need>

我假设这很好,因为我得到了这个结果:

End of search list.
12 warnings generated.
Suppressed 12 warnings (12 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.

现在,当我添加任何其他参数(即-checks=-*,clang-analyzer-*,-clang-analyzer-cplusplus*)时,我得到了错误clang-tidy: No match。除了上面的命令之外,当我添加任何其他命令时,会弹出此错误-argument

有谁知道这个问题是什么?

标签: clang-tidy

解决方案


我有这个问题。对我来说,这是我最近安装的 zsh 默认设置的问题。

这是来自 zsh 文档:

NOMATCH (+3) 如果文件名生成模式没有匹配项,则打印错误,而不是在参数列表中保持不变。这也适用于初始~' or =' 的文件扩展。

我认为这是为了阻止人们rm *意外输入内容,我可以看到它有它的优点,尽管我个人更喜欢危险地生活,所以我通过添加unsetopt nomatch~/.zshrcthen ran的末尾来禁用它source ~/.zshrc

如果您更喜欢使用默认设置,则需要将 clang-tidy 称为noglob clang-tidy.

如果是这种情况,我会添加alias clang-tidy='noglob clang-tidy'到您的 .zshrc 文件中。


推荐阅读