¿Una herramienta gratuita para verificar el código fuente de C / C ++ con un conjunto de estándares de codificación? [cerrado]

151

Parece bastante fácil encontrar una herramienta para Java ( Checkstyle , JCSC ), pero parece que no puedo encontrar una para C / C ++. No estoy buscando un analizador de código estático similar a una pelusa, solo me gustaría verificar los estándares de codificación como nombres variables, mayúsculas, espacios, identación, colocación de corchetes, etc.

Drealmer
fuente
3
Si no encuentra la respuesta que desea aquí, considere esta pregunta: stackoverflow.com/q/10819398/120163
Ira Baxter

Respuestas:

57

La única herramienta que conozco es Vera . Sin embargo, no lo he usado, así que no puedo comentar qué tan viable es. La demostración parece prometedora.

yrp
fuente
Lo he probado y es bastante simple. ¡Pero funciona!
Jader Dias
77
Lo intenté pero me decepcionó. Tokenizó el código C ++ pero tiene un solo tipo de token para "identificadores", por lo que no diferencia entre dichos nombres de clase, variables miembro y variables locales. Por lo tanto, no hay forma de que pueda encontrar para aplicar diferentes convenciones de nomenclatura a diferentes tipos de identificadores.
John W
Vera no tiene un conjunto de reglas muy completo, pero son extensibles (en TCL)
fmuecke
2
"Extensible" solo para tareas muy simples. Dado que la comprensión de Vera de C ++ es poco profunda, cualquier "verificación de estilo profundo" (considere una posible regla [no sugiero buena]: para cada asignación, hay una desasignación correspondiente en la misma función) tendrá que codificar el conocimiento apropiado de C ++, y eso es realmente muy difícil, lo que significa que no sucederá.
Ira Baxter
Enlace fijo a Vera: bitbucket.org/verateam/vera
congusbongus
49

Google c ++ lint de la guía de estilo de códigos de Google .

janesconference
fuente
44
+1. Esto es muy agradable, aunque tiene un estilo muy estricto. No es tan fácil de extender con reglas propias como con vera ++.
fmuecke
Genial si estás usando el estilo C ++ de Google aunque :) +1
jkp
3
Supongo que esto ahora se llama cpplint. Se puede encontrar en github.com/google/styleguide/tree/gh-pages/cpplint , el enlace de arriba a c ++ lint está roto.
Zitrax
Solo como referencia, para instalar, puede usar "pip install cpplint". Luego puede usar "cpplint file.cpp" o "cpplint --recursive". en lugar de "./cpplint.py", que es mucho más preferible IMO. Más fácil que descargar al menos a través de Github
Colin D
8

Estoy seguro de que esto podría ayudar hasta cierto punto al corrector cxx . Además, esta herramienta parece ser bastante buena KWStyle Es de Kitware, los chicos que desarrollan Cmake.

tatsuhirosatou
fuente
1
cxxchecker me parece muy muerto ahora.
stefanct
cxx checker es un enlace muerto.
Lobo
7

No es exactamente lo que pides, pero he encontrado que es más fácil simplemente todos están de acuerdo en un estándar de codificación astyle puede generar y luego automatizar el proceso.

Pieter
fuente
1
Será mejor que deje en claro que ArtisticStyle se centra únicamente en el formato, que por supuesto no es malo :)
Wolf
6

Prueba nsiqcppstyle . Es un verificador de estilo de codificación basado en Python para C / C ++. Es fácil ampliar para agregar sus propias reglas.

Joshua
fuente
3

Hay una lista . También hay una supuesta interfaz C ++ en la férula .

EfForEffort
fuente
8
-1 porque la pregunta decía explícitamente "no buscar analizador de código estático".
squelart
2

He utilizado una herramienta en mi trabajo, su conjunto de herramientas LDRA

Se utiliza para probar el código c / c ++, pero también se puede comparar con estándares de codificación como MISRA, etc.

udpsunil
fuente
1
¿Por qué está esto modificado? Incluso si LDRA es también un analizador estático, algo que la pregunta no está buscando, creo que también es capaz de verificar el código para detectar violaciones de un estándar de codificación.
Vitor Py
44
LDRA cuesta casi tanto como su automóvil promedio ... no es mi idea de gratis.
Lundin
2

Verifique universalindentguien sourceforge.net .

tiene muchas fichas de estilo para C y puedes personalizarlas.

Mateusz Piotrowski
fuente
UniversalIndentGUI tiene una función de vista previa en vivo, puede exportar configuración y exportar script. Es ideal para probar diferentes "penetradores", como GNU Indent, Artistic Style y Uncrustify.
congusbongus
1

Hay cppcheck que también es compatible con Hudson a través del complemento del mismo nombre.

Wernight
fuente
44
cppcheck es una herramienta de análisis estático y no lo que busca la pregunta.
Vitor Py
Tal vez esto cambió desde 2010: hoy Cppcheck también incluye advertencias para problemas de estilo. Pero, bueno, el OP excluyó explícitamente los analizadores de código estático.
Wolf
-1

Actualmente estoy trabajando en un proyecto con otro proyecto para escribir tal herramienta. Miré otras herramientas de análisis de código estático y decidí que podía hacerlo mejor.

Desafortunadamente, el proyecto aún no está listo para ser utilizado sin un conocimiento bastante íntimo del código ( léase: está lleno de errores como el infierno ). Sin embargo, nos estamos moviendo bastante rápido y esperamos tener una versión beta en las próximas 8 semanas.

El proyecto es de código abierto; puede visitar la página del proyecto y, si desea participar, nos encantaría recibir más información externa.

No lo aburriré con los detalles; puede visitar la página del proyecto para eso, pero diré una cosa: la mayoría de las herramientas de análisis de código estático están destinadas a verificar su código en busca de errores, y no están muy preocupados por verificar las pautas de codificación. Hemos adoptado un enfoque más flexible que nos permite escribir plugins para verificar tanto las "reglas de la casa" como los posibles errores.

Si desea más información, no dude en ponerse en contacto conmigo.

Salud,

Thomi
fuente
44
La última confirmación fue en junio de 2009. Parece que ya no se desarrolla.
Eponymous