2016-06-03 12 views
7

Io chiamo cppcheck sui nostri file nella nostra base di origine. Tuttavia, alcuni file di origine includono file di intestazione da librerie di terze parti, ad esempio da ./lib/some_library/. Questi vengono automaticamente analizzati anche da cppcheck.Cppcheck: come saltare una directory di file di intestazione di terze parti?

Non voglio questo, dal momento che non voglio vedere gli avvisi sul codice di terze parti. C'è un modo per aggirare questo?

La differenza con how can i tell cppcheck to skip a header file è che questo post richiede esplicitamente di ignorare un'intera directory, non solo un singolo file di intestazione.

+1

'-i

' Dare percorso di ignorare. Fornire diversi parametri -i per ignorare più percorsi. Dare il nome della directory o il nome del file con percorso come parametro. Il nome della directory corrisponde a tutte le parti di del percorso. – Gluttton

+0

Per me dice: '-i

' Dare un file sorgente o una directory del file sorgente da escludere dal controllo. ** Questo si applica solo ai file sorgente in modo che i file di intestazione inclusi dai file di origine non corrispondano. ** Il nome della directory corrisponde a tutte le parti del percorso. –

+0

vedere https: // stackoverflow.com/a/38335737/792456 – arved

risposta

1

Come da manuale cppcheck :: https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwiQi9bV6_TTAhWpjFQKHeroAw4QFggnMAA&url=http%3A%2F%2Fcppcheck.sourceforge.net%2Fmanual.pdf&usg=AFQjCNEYSf0Cbm1L1D10t2QNJLg3Cd3EcA&sig2=nZZiA8VUZejVBDdcRDj7ig

Esclusione di un file o una cartella da controllare Per escludere un file o una cartella, ci sono due opzioni. La prima opzione è fornire solo i percorsi e i file che si desidera controllare.

Vengono quindi controllati tutti i file in src/ae src/b.

La seconda opzione è utilizzare -i, con esso si specificano i file/percorsi da ignorare. Con questo comando nessun file in src/c vengono controllati:

cppcheck -isrc/c src 

Questa opzione attualmente non funziona con l'opzione --project ed è valido solo se la fornitura di una directory di input .

Per ignorare più directory, fornire -i più volte. Il seguente comando ignora entrambe le directory src/b e src/c.

cppcheck -isrc/b -isrc/c 
1

Un'altra possibilità sarebbe quella di utilizzare soppressioni tramite un file (vedere il capitolo 7 "manual soppressioni quotazione in un file") o tramite commandline.

tuo suppressions.txt potrebbe essere

*:/path/to/your/thirdpartylibs/*

che escluderebbe tutti gli errori di quel percorso. La sintassi è

[error id]:[filename]:[line]

con supporto dei caratteri jolly per * (caratteri multipli) e ? (singolo carattere).

La chiamata a cppcheck sarebbe allora

cppcheck --suppressions-list=suppressions.txt .