我正在尝试设置clang-tidy
以便在C项目中强制执行命名约定。该项目由多个外部资源组成,并使用简单的Makefile环境,因此无法使用cmake
或bear
之类的工具来生成编译数据库。
这也是我想要的:使用自定义环境,我希望为每个应检查的文件有选择地调用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
甚至没有启用为检查功能。还是有其他我应该知道的用于执行命名约定的工具?
答案 0 :(得分:0)
看看使用clang-tidy的方式:--
选项用于指定编译选项。
clang-diagnostic-error
与clang-tidy本身无关。这些是编译器警告,您无法将其关闭。 Clang-tidy需要分析的文件可编译以构建AST,并在内部将其用于检查。您将在clang-tidy documentation的clang-diagnostic-error
中找到更多信息。