禁用整洁的诊断

时间:2019-07-01 18:54:58

标签: c clang naming-conventions clang-tidy

我正在尝试设置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文件中的#include之后,并检查现有的标头:

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

有什么方法可以禁用此功能吗? clang-diagnostic-error甚至没有启用为检查功能。还是有其他我应该知道的用于执行命名约定的工具?

1 个答案:

答案 0 :(得分:0)

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

clang-diagnostic-error与clang-tidy本身无关。这些是编译器警告,您无法将其关闭。 Clang-tidy需要分析的文件可编译以构建AST,并在内部将其用于检查。您将在clang-tidy documentationclang-diagnostic-error中找到更多信息。