Clang-Tidy не может найти мои заголовочные файлы

новичок лязгать и лязгать здесь.

У меня есть проект с такой структурой:

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"

1

Решение

Этот ответ поможет вам, только если вы используете CMake для управления своим проектом.

CMake имеет опцию для создания файла .json, который содержит все вызовы компилятора с параметрами командной строки. Этот файл может быть передан clang-tidy с опцией:

-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 переменная для создания файла .json с CMake, а затем передать выходной каталог CMake в clang-tidy.
Clang-tidy получит включаемые пути из команд в файле .json.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector