禁用 clang-tidy 诊断

Disabling clang-tidy diagnostic

我正在尝试设置 clang-tidy 以在 C 项目中强制执行命名约定。本项目由多个外部源组成,使用普通的makefile环境,因此没有cmakebear之类的工具可用于生成编译数据库。

这也是我想要的:使用自定义环境,我想为每个应检查的文件选择性地调用 clang-tidy

我在配置工具,主要是为了检查readability-identifier-naming。为了进行测试,我有一个 .c.h 文件,它们都在同一目录中,内容如下:

dummy.c

#include "dummy.h"
#include "MISSING_module.h"

// EOF

dummy.h

#ifndef _DUMMY_H_
#define _DUMMY_H_

#include <stdlib.h>

// EOF

我调用的命令是

clang-tidy dummy.c -checks='-*,readability-identifier-naming' -- -DCMAKE_EXPORT_COMPILE_COMMANDS=ON`

但是,clang-tidy 仍在 C-file 中跟随 #include 并检查现有的 headers:

dummy.h:4:10: error: 'stdlib.h' file not found [clang-diagnostic-error]
#include <stdlib.h>
          ^
Found compiler error(s).

有什么方法可以禁用它吗? clang-diagnostic-error 甚至没有启用检查。或者是否有我应该知道的替代工具来执行命名约定?

看你的使用方式clang-tidy:--选项用于指定编译选项。

clang-diagnostic-error 与 clang-tidy 本身没有任何关系。这些是编译器警告,您无法将其关闭。 Clang-tidy 需要分析的文件是 compile-able 来构建它在内部用于检查的 AST。您可以在 clang-tidy documentation.

中找到有关 clang-diagnostic-error 的更多信息