Jestem w trakcie przenoszenia projektu aktualnie kompilującego się z gcc do clang, i mam kilka ostrzeżeń, których gcc nie wygenerował (-Winconsistent-missing-override
). clang-tidy
działa w celu naprawienia tych błędów w plikach *.cpp
, jednak nie dotyka plików hpp
, ponieważ polecenie kompilacji nie zostało znalezione w bazie danych (jak można się spodziewać).Uzyskiwanie dostępu do pliku nagłówkowego
Używam ninja
do zbudowania projektu i ninja -t compdb cc cxx > .build/compile_commands.json
do wygenerowania bazy danych kompilacji. Próbowałem uruchomić:
clang-tidy-3.6 -p .build/ \
$(find src/ -name *.cpp) \
$(find src/ -name *.hpp) \
--checks=misc-use-override --fix
, aby naprawić błędy. Odmawia dotknąć plików nagłówkowych skarży:
Skipping .../src/header/file.hpp. Compile command not found.
W odniesieniu do „poprawki skończyło się stosować kilka razy”: To dlaczego tam skrypt run-dzyń-schludny który najpierw zbiera poprawki, a następnie stosuje je w trybie one-go * później *. Zobacz http://clang-developers.42468.n3.nabble.com/Clang-tidy-applying-fixes-multiple-times-on-same-file-tp4048842p4049156.html – kfunk
Rozumiem. Nie bardzo dobrze udokumentowane. Jeśli napiszesz to jako odpowiedź lub sugerowaną zmianę, z przyjemnością go zaakceptuję. (Przestałem robić dużo rozwoju języka C++, więc prawdopodobnie go nie przetestuję) – nishantjr