2011-07-30 8 views
16

¿Alguien sabe cómo obtener pelusa para Mac, Windows y Linux? sudo port install lint no puede encontrarlo.¿Cómo descargo e instalo pelusa?

+4

pelusa pelusa es bastante viejo, y casi todo se utiliza para advertir sobre ahora está cubierto por las advertencias del compilador reales. Es posible que desee probar algo moderno como [Cppcheck] (http://cppcheck.sourceforge.net/) (que también funciona muy bien para los programas C). –

+2

Es posible que tenga que habilitar optimizaciones para conseguir "más o menos pelusa todo utilizado para advertir sobre'. Sin optimizaciones, el compilador puede omitir el análisis que descubrir los problemas que puede emitir una advertencia acerca. –

+0

@GregHewgill, sólo está disponible en Windows Cppcheck? Si es así, las alternativas sugeridas para Linux –

Respuesta

3

Desde el FAQ férula:

Splint supports most, but not all, of the C99 extensions to the ANSI C.

Esto implica que la férula es por desgracia no es igual que la pelusa. He tenido experiencia personal con el funcionamiento de férula en trozos de código como este:

for (int i; i < 100; i++) 
    /* Run code */ 

Como declaración de una variable dentro de la cabecera de bucle no está permitido hasta C99, como en este ejemplo, la férula se quejan de esto. Por lo tanto, todavía estoy buscando una buena alternativa para splint para Ubuntu.

+1

debería ser 'for (int i = 0; i <100; i ++) /* Ejecutar código * /' – arainchi

+0

@arainchi Por el bien del ejemplo y para evitar confusiones, la definición debe omitirse aquí en mi opinión. La declaración de variable es el problema. – gustafbstrom

11

Sólo he visto pelusa para BSD. No es splint, sin embargo, una reescritura de pelusa GPL, y está disponible en la mayoría de las distribuciones de Linux.

+0

Splint es increíble! Gracias. – mcandre

+1

En Mavericks, 'splint' se queja de' osd.c: 519: 3: error: nombre de tipo desconocido '__pid_t'; ¿quiso decir 'pid_t'? __pid_t pid = getpid(); ^ ~~~~~~ pid_t /usr/include/sys/_types/_pid_t.h:30:31: NOTA: 'pid_t' declaró aquí typedef __darwin_pid_t pid_t; ^ 1 error 'generado durante la compilación/paso de creación. Cambie esa línea a 'pid_t pid = getpid();' para compilar/hacer en OS X Mavericks. –