我正在 bazel 项目上运行
clang-tidy
。我使用看似有效的命令生成了 compile_commands.json
。
我正在跑步
clang-tidy
,如下:
clang-tidy -p /path/to/compile_commands.json /path/tocpp/file.cpp
错误来自于无法包含头文件。这是一个传递包含。
我还从
compile_commands.json
运行了特定的编译命令,并验证了 file.cpp
可以使用原始工具链(即 RHEL GCC)进行编译。
我可能缺少什么?
clang-tidy
是否有可能不遵守编译命令?我尝试在没有 -p /path/to/compile_commands.json
的情况下运行上面相同的命令,但我看到了相同的错误。
非常感谢!
-p /path/to/compile_commands.json
使用不当。 -p
应该指向compile_commands.json
所在的目录,这通常是cmake构建目录。
用于读取编译命令数据库。-p <build-path>
例如,它可以是 CMake 构建目录,其中存在名为的文件(使用compile_commands.json
CMake 选项获取此输出)。-DCMAKE_EXPORT_COMPILE_COMMANDS=ON
一定是
-p /path/to
适合你。