2016-02-08 5 views
7

Ich bin dabei, ein Projekt zu verschieben, das derzeit mit gcc zu clang, , und haben eine Reihe von Warnungen, die gcc nicht generiert (-Winconsistent-missing-override). clang-tidy Werke für diese Fehler in den *.cpp Dateien Festsetzung aber es nicht berühren die hpp Dateien, weil ein Kompilierungsbefehl nicht in der Datenbank gefunden wurde (wie ich erwarten würde).Get Clumb-ordentlich, um Header-Dateien zu beheben

ich ninja bin mit dem Projekt erstellen und ninja -t compdb cc cxx > .build/compile_commands.json die Kompilation Datenbank zu generieren. Ich habe versucht zu laufen:

clang-tidy-3.6 -p .build/  \ 
     $(find src/ -name *.cpp) \ 
     $(find src/ -name *.hpp) \ 
     --checks=misc-use-override --fix 

, um die Fehler zu beheben. Es weigert sich beschweren Header-Dateien zu berühren:

Skipping .../src/header/file.hpp. Compile command not found. 

Antwort

6

Ich habe es durch die Angabe der --header-filter=src/ Option arbeiten. Interessanterbehebungen endete wobei dies angewendet mehrmals verursacht Ausgabe wie:

void f() override override override override override; 

ich um dieses arbeitete von clang-tidy auf jeder Quelldatei separat ausgeführt werden. Beachten Sie auch, dass die mit -p angegebene <build-path> auch die .clang-format Konfiguration für das anzuwendende Styling enthalten muss.

Dies ist meine aktuelle Iteration des Befehls:

find src/ -name '*.cpp' -exec \ 
    clang-tidy-3.6 -p . --header-filter=src/ {} 
       --checks=misc-use-override --fix 
+0

In Bezug auf die „Korrekturen endete als mehrmals angewandt“: Deshalb gibt es einen Lauf Klirren-ordentlich Skript, das zuerst die Updates speichert und dann wendet sie in einem Durchgang * danach * an. Siehe http://clang-developers.42468.n3.nabble.com/Clang-tidy-applying-fixes-multiple-times-on-same-file-tp4048842p4049156.html – kfunk

+0

ich sehe. Nicht sehr gut dokumentiert. Wenn Sie dies als eine Antwort oder eine vorgeschlagene Bearbeitung schreiben, werde ich mehr als glücklich sein, es zu akzeptieren. (Ich habe aufgehört, viel C++ Entwicklung zu tun, also werde ich es wahrscheinlich nicht testen) – nishantjr

Verwandte Themen