2013-10-16 6 views
10

Ich habe die Version 2.9 von scan-build/clang auf dem Ubuntu-Desktop installiert. Ich baue meinen C++ Quellcode dort mit make. Wie gesagt Scan-build würde ein Projekt analysieren, die, wenn SieVerwendung des Befehls scan-build für die Analyse des Clar-Codes

geben machen gebaut mit wird
scan-build make 

zu

aber nach dem Make sehe ich eine Nachricht

scan-build: Removing '/tmp/scan-build-2013-10-16-1' because it contains no reports. 

Auch

versucht
scan-build --use-c++=/use/bin/clang++ make 

Q1 - Was mache ich hier falsch/fehlt. Wie man mit scan-build alle Quelldateien analysiert.

Q2 - Gibt es eine Option clang++ --analyze myfile.cpp zu verwenden, um einzelne Quelldatei zu analysieren. Aber es gibt einen Fehler über eine Header-Datei enthalten nicht gefunden 'fatalen' Fehler 'my.h

Was ist die Option zu Clang analysieren, um es auf den Ordner mit Header-Dateien zu zeigen.

Antwort

2

Wie für Q2, sollten Sie in der Lage zu verwenden:

scan-build clang++ -c myfile.cpp 

oder was Sie vorgeschlagen:

clang++ --analyze myfile.cpp 

aber Sie müssen sicherstellen, dass der Compiler über alle umfasst und Bibliotheken kennt (Sie sollten myfile.cpp erfolgreich zu einer Objektdatei ohne Analyse kompilieren können). Dazu gehören insbesondere die -I Verzeichnisse.

Es gibt auch die Option -o für scan-build, die das Zielverzeichnis für HTML-Berichtsdateien angibt. Unterverzeichnisse werden nach Bedarf erstellt, um separate "Läufe" des Analysators darzustellen. Wenn diese Option nicht angegeben ist, wird ein Verzeichnis in /tmp erstellt, um die Berichte zu speichern, wie Sie bereits wissen.

Eine andere nützliche Option wäre -v (ausführlich), die alle Fehler, auf die der Analysator stoßen könnte, ausdrucken sollte.

Nicht zuletzt sollten Sie die Analyse mit Debug-Builds verwenden, bei denen die Optimierung deaktiviert ist, aber noch wichtiger, wenn die Symbole nicht entfernt werden.

Nicht sicher, ob es hilft, lassen Sie mich wissen ...

+0

Dank -Ich war die Option, die ich verpasste. Es half. – goldenmean

+0

Genießen Sie die Bounty. danke – goldenmean

+0

Ich muss jedoch erwähnen, dass "scan-build clang ++ -c myfile.cpp" die Datei nicht statisch analysiert, sondern kompiliert, baut und verknüpft. – goldenmean