首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Clang-Tidy找不到我的头文件

Clang-Tidy找不到我的头文件
EN

Stack Overflow用户
提问于 2016-09-13 00:47:33
回答 3查看 16.5K关注 0票数 15

这里是新的当当整洁的地方。

我有一个具有这种结构的项目:project/ - build/ - cmake/ - component1/ - src/ - someFile.cpp - someFile2.cpp - someFile.hpp - someFile2.hpp - component2/ - etc... -

当我使用以下命令使用clang-tidy遍历project/component1/中的所有文件时:clang-tidy project/component1/src/* -checks=-*,clang-analyzer-*,-clang-analyzer-alpha*

它最终抛出一个错误,如下所示:$HOME/project/component1/src/someFile.cpp:18:10: error: 'project/component1/someFile.hpp' file not found [clang-diagnostic-error] \#include "component1/someFile.hpp"

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-09-20 22:30:24

只有当您使用CMake来管理您的项目时,此答案才会对您有所帮助。

CMake可以选择创建一个.json文件,该文件包含带有命令行选项的所有编译器调用。可以使用以下选项将此文件提供给clang-tidy:

代码语言:javascript
复制
-p <build-path> is used to read a compile command database.

    For example, it can be a CMake build directory in which a file named
    compile_commands.json exists (use -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
    CMake option to get this output). When no build path is specified,
    a search for compile_commands.json will be attempted through all
    parent paths of the first input file . See:
    http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html for an
    example of setting up Clang Tooling on a source tree.

正如文档所述,您必须设置CMAKE_EXPORT_COMPILE_COMMANDS变量以使用CMake生成.json文件,然后将CMake输出目录传递给clang-tidy。然后,Clang-tidy将从.json文件中的命令中获取包含路径。

票数 19
EN

Stack Overflow用户

发布于 2019-06-05 16:42:28

我告诉clang-tidy使用普通的编译器包含来搜索它们,但是它们必须在双破折号(--)之后引入。我也花了一段时间才发现它,因为它没有包含在--help

代码语言:javascript
复制
clang-tidy -checks='...' <source0> ... -- -Iblabla/ ...

再次阅读选项,您不能尝试-extra-arg=参数,但我使用双破折号方法,因为它允许我将所有选项放在一个文件中,而不需要比$(cat $file)更多的处理。

来自:https://clang.llvm.org/extra/clang-tidy/#using-clang-tidy

LibTooling tidy是一个基于

的工具。您还可以在--

之后的命令行上指定编译选项

票数 16
EN

Stack Overflow用户

发布于 2021-09-30 15:04:52

在CMake中也有同样的问题。在我的案例中,问题是Clang-Tidy无法通过响应文件处理包含目录-至少在版本10中是这样。

停用它们解决了这个问题:

代码语言:javascript
复制
# Disable response files
set(CMAKE_CXX_USE_RESPONSE_FILE_FOR_INCLUDES Off)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39455090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档