Ein kostenloses Tool zum Überprüfen des C / C ++ - Quellcodes anhand einer Reihe von Codierungsstandards? [geschlossen]

151

Es sieht ziemlich einfach aus, ein solches Tool für Java ( Checkstyle , JCSC ) zu finden, aber ich kann anscheinend kein Tool für C / C ++ finden. Ich bin nicht auf der Suche nach einem fusselförmigen statischen Code-Analysator, sondern möchte nur anhand von Codierungsstandards wie Variablennamen, Groß- und Kleinschreibung, Abstand, Identifizierung, Platzierung von Klammern usw. prüfen.

Drealmer
quelle
3
Wenn Sie hier nicht die gewünschte Antwort finden, ziehen Sie diese Frage in Betracht: stackoverflow.com/q/10819398/120163
Ira Baxter

Antworten:

57

Das einzige Werkzeug, das ich kenne, ist Vera . Ich habe es jedoch nicht benutzt und kann daher nicht beurteilen, wie tragfähig es ist. Demo sieht vielversprechend aus.

yrp
quelle
Ich habe es getestet und es ist ganz einfach. Aber es funktioniert!
Jader Dias
7
Ich habe es versucht, war aber enttäuscht. Es hat C ++ - Code tokenisiert, aber nur einen einzigen Tokentyp für "Bezeichner", sodass nicht zwischen beispielsweise Klassennamen, Mitgliedsvariablen und lokalen Variablen unterschieden wird. Es gibt daher keine Möglichkeit, verschiedene Namenskonventionen für verschiedene Arten von Bezeichnern durchzusetzen.
John W
Vera hat kein sehr umfassendes Regelwerk - aber sie sind erweiterbar (in TCL)
fmuecke
2
"Erweiterbar" nur für sehr einfache Aufgaben. Da Veras Verständnis von C ++ gering ist, muss jede "Deep Style Check" (eine mögliche [ich schlage nicht gut vor] Regel: Für jede Zuordnung gibt es eine entsprechende Freigabe in derselben Funktion) das entsprechende C ++ - Wissen codieren. und das ist wirklich sehr , sehr schwer, was bedeutet, dass es nicht passieren wird.
Ira Baxter
Link zu Vera behoben
congusbongus
49

Google C ++ - Flusen aus dem Google Code Style Guide .

janesconference
quelle
4
+1. Das ist sehr schön - obwohl es einen sehr strengen Stil hat. Nicht so einfach mit eigenen Regeln zu erweitern wie mit vera ++.
Fmuecke
Großartig, wenn Sie den C ++ - Stil von Google verwenden :) +1
jkp
3
Ich gehe davon aus, dass dies jetzt cpplint heißt . Es kann unter github.com/google/styleguide/tree/gh-pages/cpplint gefunden werden. Der obige Link zu c ++ lint ist defekt.
Zitrax
Nur als Referenz, um zu installieren, können Sie "pip install cpplint" verwenden. Dann können Sie einfach "cpplint file.cpp" oder "cpplint --recursive" verwenden. anstelle von "./cpplint.py", was IMO viel vorzuziehen ist. Einfacher als das Herunterladen über Github
Colin D
8

Ich bin sicher, dass dies bis zu einem gewissen Grad helfen könnte . Auch dieses Tool scheint ziemlich gut zu sein. KWStyle Es ist von Kitware, den Leuten, die Cmake entwickeln.

Tatsuhirosatou
quelle
1
cxxchecker scheint mir jetzt sehr tot zu sein.
stefanct
cxx checker ist ein toter Link.
Wolf
7

Nicht genau das, wonach Sie fragen, aber ich fand es einfacher, sich alle auf einen Codierungsstandard zu einigen, den Astyle generieren und dann den Prozess automatisieren kann.

Pieter
quelle
1
Sie sollten besser klarstellen, dass ArtisticStyle sich ausschließlich auf die Formatierung konzentriert, was natürlich keine schlechte Sache ist :)
Wolf
6

Versuchen Sie nsiqcppstyle . Es ist ein Python-basierter Coding Style Checker für C / C ++. Es ist einfach zu erweitern, um eigene Regeln hinzuzufügen.

Joshua
quelle
3

Es gibt eine Liste . Es gibt auch ein mutmaßliches C ++ - Frontend für die Schiene .

EfForEffort
quelle
8
-1, weil die Frage ausdrücklich sagte "nicht auf der Suche nach statischem Code-Analysator".
Squelart
2

Ich habe in meiner Arbeit ein Tool verwendet, die LDRA-Tool-Suite

Es wird zum Testen des c / c ++ - Codes verwendet, kann aber auch mit Codierungsstandards wie MISRA usw. verglichen werden.

udpsunil
quelle
1
Warum ist das down modded? Selbst wenn LDRA auch ein statischer Analysator ist - etwas, nach dem die Frage nicht sucht -, ist es meiner Meinung nach auch in der Lage, den Code auf Verstöße gegen einen Codierungsstandard zu überprüfen.
Vitor Py
4
LDRA kostet ungefähr so ​​viel wie ein durchschnittliches Auto ... nicht meine Vorstellung von kostenlos.
Lundin
2

Überprüfen Sie universalindentguiauf sourceforge.net .

Es gibt viele Stilprüfer für C und Sie können die Prüfer anpassen.

Mateusz Piotrowski
quelle
UniversalIndentGUI Es verfügt über eine Live-Vorschau-Funktion, kann Konfiguration exportieren und Skript exportieren. Es eignet sich hervorragend zum Ausprobieren verschiedener "Einrückungen" wie GNU-Einrückungen, Artistic Style und Uncrustify.
Congusbongus
1

Es gibt cppcheck, das auch von Hudson über das gleichnamige Plugin unterstützt wird .

Wernight
quelle
4
cppcheck ist ein statisches Analysewerkzeug und nicht das, wonach die Frage sucht.
Vitor Py
Vielleicht hat sich dies seit 2010 geändert: Heute enthält Cppcheck auch Warnungen für Stilprobleme. Nun, das OP schloss statische Code-Analysatoren ausdrücklich aus.
Wolf
1

Überprüfen Sie Metrix ++ http://metrixplusplus.sourceforge.net/ . Möglicherweise sind einige Erweiterungen erforderlich, die auf Ihre Anforderungen zugeschnitten sind.

Andrew
quelle
-1

Ich arbeite derzeit an einem Projekt mit einem anderen Projekt, um ein solches Tool zu schreiben. Ich habe mir andere Tools zur Analyse statischen Codes angesehen und festgestellt, dass ich es besser machen kann.

Leider ist das Projekt noch nicht einsatzbereit, ohne den Code ziemlich genau zu kennen ( lesen Sie: Es ist verdammt fehlerhaft ). Wir bewegen uns jedoch ziemlich schnell und hoffen, in den nächsten 8 Wochen eine Beta-Version zu haben.

Das Projekt ist Open Source - Sie können die Projektseite besuchen , und wenn Sie sich beteiligen möchten, würden wir uns über weitere externe Beiträge freuen.

Ich werde Sie nicht mit den Details langweilen - Sie können die Projektseite dafür besuchen , aber ich werde eines sagen: Die meisten statischen Code-Analyse-Tools zielen darauf ab, Ihren Code auf Fehler zu überprüfen, und sind nicht sehr darauf bedacht, nach Codierungsrichtlinien zu suchen. Wir haben einen flexibleren Ansatz gewählt, der es uns ermöglicht, Plugins zu schreiben, um sowohl nach "Hausregeln" als auch nach möglichen Fehlern zu suchen.

Wenn Sie weitere Informationen wünschen, zögern Sie bitte nicht, mich zu kontaktieren.

Prost,

Thomi
quelle
4
Das letzte Commit war im Juni 2009. Es scheint nicht mehr entwickelt zu sein.
Gleichnamig