Я нахожусь в процессе переноса проекта, в настоящее время компилируемого с gcc в clang,
и есть куча предупреждений, которые не генерирует gcc (-Winconsistent-missing-override
). clang-tidy
работает для исправления этих ошибок в *.cpp
файлы, однако это не касается hpp
файлы, потому что команда компиляции не была найдена в базе данных (как я и ожидал).
я использую ninja
построить проект и ninja -t compdb cc cxx > .build/compile_commands.json
создать базу данных компиляции. Я пытался запустить:
clang-tidy-3.6 -p .build/ \
$(find src/ -name *.cpp) \
$(find src/ -name *.hpp) \
--checks=misc-use-override --fix
исправить ошибки. Отказывается трогать заголовочные файлы с жалобами:
Skipping .../src/header/file.hpp. Compile command not found.
Я получил это, указав --header-filter=src/
вариант.
Интересно, что исправления заканчивались тем, что они применялись несколько раз, вызывая вывод:
void f() override override override override override;
Я работал над этим, запустив clang-tidy
на каждый исходный файл отдельно. Также обратите внимание на <build-path>
указано с -p
также должен содержать .clang-format
Конфигурация для применения стиля.
Это моя текущая итерация команды:
find src/ -name '*.cpp' -exec \
clang-tidy-3.6 -p . --header-filter=src/ {}
--checks=misc-use-override --fix
Других решений пока нет …