首页 > 解决方案 > Clang-tidy 找不到头文件

问题描述

注意:这是在 RHEL 7.2 中使用 clang 8.0.1 完成的。

我正在运行命令

clang-tidy test.C -- -I/path/to/header.h

我收到以下错误:

1 error generated.
Error while processing test.C.
test.C:28:10: error: 'header.h' file not found [clang-diagnostic-error]
#include "header.h"
         ^
Found compiler error(s).

当我使用 g++ 构建时,它工作正常。上面的 include 是文件的第一个 include 语句,后面还有一些。文件结构复杂,因此很难显示文件的位置。我认为 -I 参数会找到标题,但事实并非如此。那么,我如何才能找到那些头文件呢?

标签: c++linuxclang-tidy

解决方案


Clang 工具通常需要一个编译数据库:compile_commands.json. 它提供了构建 cpp 单元所需的信息(ge 包含目录)。

您可以使用一些外部工具从 Make、CMake 等生成此文件。

https://github.com/rizsotto/Bear就是其中之一。


推荐阅读