новичок лязгать и лязгать здесь.
У меня есть проект с такой структурой:
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"
Этот ответ поможет вам, только если вы используете 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.
Других решений пока нет …