¿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.


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.


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


49

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.


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.


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.



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.


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


1

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


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,


44
La última confirmación fue en junio de 2009. Parece que ya no se desarrolla.
Eponymous
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.