2008-09-18 13 views
136

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 parecido a una pelusa, solo me gustaría verificarlo contra estándares de codificación como nomenclatura variable, mayúsculas, espaciado, identación, colocación de paréntesis, etc.¿Una herramienta gratuita para verificar el código fuente C/C++ contra un conjunto de estándares de codificación?

+2

Si no encuentra la respuesta que desea aquí, considere esta pregunta: http://stackoverflow.com/q/10819398/120163 –

Respuesta

55

La única herramienta que conozco es Vera. No lo he usado, así que no puedo comentar lo viable que es. Demo parece prometedor.

+0

Lo he probado, y es bastante simple. ¡Pero funciona! –

+5

Lo probé, pero me decepcionó. Tokenizó el código de C++ pero solo tiene un tipo de token único para "identificadores", por lo que no diferencia entre dichos nombres de clase, variables de miembro y variables locales. Por lo tanto, no hay forma de que pueda encontrar para aplicar diferentes convenciones de nomenclatura a diferentes tipos de identificador. –

+0

Vera no tiene un conjunto muy completo de reglas, pero son extensibles (en TCL) – fmuecke

3

He utilizado una herramienta en mi obra su LDRA tool suite

Se utiliza para probar la/C++ código C pero también puede verificar con los estándares de codificación tales como Misra etc.

+1

¿Por qué se modificó? Incluso si LDRA es también un analizador estático, algo que la pregunta no busca, creo que también es capaz de verificar el código en busca de violaciones de un estándar de codificación. –

+4

Esta no es una herramienta gratuita. –

+4

LDRA cuesta tanto como un auto promedio ... no es mi idea de gratis. – Lundin

7

No es exactamente lo que pide, pero me ha resultado más fácil estar de acuerdo en que un estándar de codificación astyle puede generar y luego automatizar el proceso.

+0

¡Excelente! Gracias – chmike

+0

Es mejor dejar en claro que ** ArtisticStyle se centra únicamente en el formato ** que, por supuesto, no es algo malo :) – Wolf

2

Compruebe universalindentgui en sourceforge.net.

tiene muchas fichas de estilo para C y puede personalizar las fichas.

+0

[UniversalIndentGUI] (http://universalindent.sourceforge.net/) Tiene una función de vista previa en vivo, puede export config y script de exportación. Es ideal para probar diferentes "penetradores", como Sangría GNU, Estilo artístico y Descifrar. – congusbongus

9

Estoy seguro de que esto podría ayudar hasta cierto punto cxx checker. También esta herramienta parece ser bastante buena KWStyle Es de Kitware, los tipos que desarrollan Cmake.

+1

cxxchecker parece muy muerto para mí ahora. – stefanct

+0

* cxx checker * es un enlace inactivo. – Wolf

-1

Actualmente estoy trabajando en un proyecto con otro proyecto para escribir una de esas herramientas. 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 (leído: es un error como el infierno). Sin embargo, nos estamos moviendo con bastante rapidez y esperamos tener una versión beta dentro de las próximas 8 semanas.

El proyecto es de código abierto - you can visit the project page, y si desea participar, nos encantaría algo más de entrada externa.

No te aburriré con los detalles; puedes visit the project page para eso, pero diré una cosa: la mayoría de las herramientas estáticas de análisis de código tienen como objetivo verificar el código en busca de errores y no preocuparte por comprobar las pautas de codificación . Hemos adoptado un enfoque más flexible que nos permite escribir plugines para verificar tanto las "reglas de la casa" como los posibles errores.

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

Saludos,

+4

El último compromiso fue en junio de 2009. Parece que ya no está desarrollado. – Eponymous

45
+4

+1. Esto es muy bueno, aunque tiene un estilo muy estricto. No es tan fácil de extender con reglas propias como con vera ++. – fmuecke

+0

Genial si estás usando el estilo de C++ de Google :) :) +1 – jkp

+3

Supongo que esto es lo que ahora se llama * cpplint * Se puede encontrar en https://github.com/google/styleguide/tree/gh-pages/cpplint , el enlace de arriba a C++ lint está roto. – Zitrax

1

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

+4

cppcheck es una herramienta de análisis estático y no es lo que la pregunta está buscando. –

+0

Quizás esto haya cambiado desde 2010: hoy Cppcheck también incluye advertencias para cuestiones estilísticas. Pero, bueno, el OP excluyó explícitamente a los analizadores de códigos estáticos. – Wolf

6

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

0

Salida Código Abraxas Compruebe http://www.abxsoft.com/codchk_user.html

+0

además de la documentación, ** no es gratis **: http://www.abxsoft.com/codchk.htm Además, parece estar obsoleto http://www.abxsoft.com/pricing.htm – Wolf

Cuestiones relacionadas