Un outil gratuit pour vérifier le code source C / C ++ par rapport à un ensemble de normes de codage? [fermé]


151

Il semble assez facile de trouver un tel outil pour Java ( Checkstyle , JCSC ), mais je n'arrive pas à en trouver un pour C / C ++. Je ne recherche pas un analyseur de code statique semblable à des peluches, je voudrais seulement vérifier les normes de codage telles que la dénomination des variables, la capitalisation, l'espacement, l'identification, le placement des crochets, etc.


3
Si vous ne trouvez pas la réponse que vous voulez ici, considérez cette question: stackoverflow.com/q/10819398/120163
Ira Baxter

Réponses:


57

Le seul outil que je connaisse est Vera . Je ne l'ai pas utilisé, je ne peux donc pas dire à quel point il est viable. La démo semble prometteuse.


Je l'ai testé, et c'est assez simple. Mais ça marche!
Jader Dias

7
J'ai essayé mais j'ai été déçu. Il a symbolisé le code C ++ mais n'a qu'un seul type de jeton pour les «identificateurs», donc il ne fait pas la différence entre les noms de classe, les variables membres et les variables locales. Il n'y a donc aucun moyen que je puisse trouver pour appliquer différentes conventions de dénomination à différents types d'identificateurs.
John W

Vera n'a pas un ensemble de règles très complet - mais elles sont extensibles (en TCL)
fmuecke

2
"Extensible" uniquement pour des tâches très simples. Puisque la compréhension de Vera du C ++ est superficielle, toute "vérification approfondie du style" (considérez une règle possible [je ne suggère pas de bonne]: pour chaque allocation, il y a une désallocation correspondante dans la même fonction) devra encoder la connaissance C ++ appropriée, et c'est vraiment très difficile, ce qui signifie que cela n'arrivera pas.
Ira Baxter


49

4
+1. C'est très joli - bien que cela ait un style très strict. Pas si facile à étendre avec ses propres règles comme avec vera ++.
fmuecke

Bien si vous utilisez le style C ++ de Google :) +1
jkp

3
Je suppose que c'est maintenant ce qu'on appelle cpplint Il peut être trouvé à github.com/google/styleguide/tree/gh-pages/cpplint , le lien ci-dessus vers c ++ lint est rompu.
Zitrax

Juste pour référence, pour installer, vous pouvez utiliser "pip install cpplint". Ensuite, vous pouvez simplement utiliser "cpplint file.cpp" ou "cpplint --recursive". au lieu de "./cpplint.py" qui est de loin préférable à l'OMI. Plus facile que de télécharger via github au moins
Colin D


8

Je suis sûr que cela pourrait aider dans une certaine mesure le vérificateur cxx . Cet outil semble également être assez bon KWStyle. C'est de Kitware, les gars qui développent Cmake.


1
cxxchecker me semble très mort maintenant.
stefanct

Le vérificateur cxx est un lien mort.
Wolf

7

Pas exactement ce que vous demandez, mais j'ai trouvé plus facile de se mettre d'accord sur une norme de codage qu'un style de code peut générer, puis automatiser le processus.


1
Vous feriez mieux de préciser qu'ArtisticStyle se concentre uniquement sur le formatage, ce qui n'est bien sûr pas une mauvaise chose :)
Wolf

6

Essayez nsiqcppstyle . C'est un vérificateur de style de codage basé sur Python pour C / C ++. Il est facile d'étendre pour ajouter vos propres règles.



2

J'ai utilisé un outil dans mon travail sa suite d'outils LDRA

Il est utilisé pour tester le code c / c ++ mais il peut également vérifier les normes de codage telles que MISRA, etc.


1
Pourquoi est-ce que ce down est modifié? Même si LDRA est également un analyseur statique - ce que la question ne cherche pas - je pense qu'il est également capable de vérifier le code pour les violations d'une norme de codage.
Vitor Py

4
LDRA coûte environ autant que votre voiture moyenne ... ce n'est pas mon idée de la gratuité.
Lundin le

2

Vérifiez universalindentguisur sourceforge.net .

il a de nombreux contrôleurs de style pour C et vous pouvez personnaliser les contrôleurs.


UniversalIndentGUI Il a une fonction de prévisualisation en direct, peut exporter la configuration et exporter le script. C'est génial pour essayer différents "indenters", tels que GNU Indent, Artistic Style et Uncrustify.
congusbongus

1

Il existe cppcheck qui est également pris en charge par Hudson via le plugin du même nom.


4
cppcheck est un outil d'analyse statique et non ce que la question recherche.
Vitor Py

Peut-être que cela a changé depuis 2010: Aujourd'hui, Cppcheck comprend également des avertissements pour les problèmes de style. Mais bon, l'OP a explicitement exclu les analyseurs de code statique.
Wolf



-1

Je travaille actuellement sur un projet avec un autre projet pour écrire un tel outil. J'ai examiné d'autres outils d'analyse de code statique et j'ai décidé que je pouvais faire mieux.

Malheureusement, le projet n'est pas encore prêt à être utilisé sans connaissance assez intime du code ( lire: elle est boguée comme tout l' enfer ). Cependant, nous avançons assez rapidement et espérons avoir une version bêta dans les 8 prochaines semaines.

Le projet est open source - vous pouvez visiter la page du projet , et si vous voulez vous impliquer, nous aimerions plus de contributions externes.

Je ne vous ennuierai pas avec les détails - vous pouvez visiter la page du projet pour cela, mais je dirai une chose: la plupart des outils d'analyse de code statique visent à vérifier votre code pour les erreurs, et ne sont pas très concernés par la vérification des directives de codage. Nous avons adopté une approche plus flexible qui nous permet d'écrire des plug-ins pour vérifier à la fois les «règles de la maison» ainsi que les bogues éventuels.

Si vous souhaitez plus d'informations, n'hésitez pas à me contacter.

À votre santé,


4
Le dernier commit remonte à juin 2009. Il ne semble plus développé.
Éponyme
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.