web-dev-qa-db-ja.com

Cppcheck:サードパーティのヘッダーファイルのディレクトリをスキップする方法は?

ソースベースの独自のファイルでcppcheckを呼び出します。ただし、一部のソースファイルには、./lib/some_library/などのサードパーティライブラリのヘッダーファイルが含まれています。これらは、cppcheckによっても自動的に解析されます。

サードパーティのコードで警告を表示したくないので、これは必要ありません。これを回避する方法はありますか?

cppcheckにヘッダーファイルをスキップするように指示するにはどうすればよいですか との違いは、この投稿では、個々のヘッダーファイルだけでなく、ディレクトリ全体をスキップするように明示的に要求していることです。

10

もう1つの可能性は、ファイルを介して抑制を使用することです( 手動 第7章「ファイル内の抑制の一覧表示」を参照)または コマンドライン を介して。

あなたのsuppressions.txtは

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

これにより、そのパスからすべてのエラーが除外されます。構文は

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

*(複数文字)および?(単一文字)のワイルドカードサポート付き。

その場合、cppcheckの呼び出しは次のようになります。

cppcheck --suppressions-list=suppressions.txt .
3
BNT

cppcheckマニュアル

チェックからファイルまたはフォルダーを除外するファイルまたはフォルダーを除外するには、2つのオプションがあります。最初のオプションは、チェックするパスとファイルのみを提供することです。

cppcheck src/a src/b

次に、src/aおよびsrc/bの下にあるすべてのファイルがチェックされます。

2番目のオプションは、-iを使用することです。これを使用して、無視するファイル/パスを指定します。このコマンドでは、src/c内のファイルはチェックされません。

cppcheck -isrc/c src

このオプションは現在、-projectオプションでは機能せず、入力ディレクトリを指定する場合にのみ有効です。

複数のディレクトリを無視するには、-iを複数回指定します。次のコマンドは、src/bディレクトリとsrc/cディレクトリの両方を無視します。

cppcheck -isrc/b -isrc/c
2

同様に、専用のサードパーティディレクトリに関するレポートを除外する必要がありました。そのために、CLIで直接--suppressオプションを使用しました。

"C:\Program Files\Cppcheck\cppcheck" --suppress=*:*3rdparty\* --language=c++ --enable=all --xml --xml-version=2 . 2> cppcheck-result.xml

cppcheckの興味深い点は、stdoutに「抑制された」ディレクトリを通過していることを示しますが、結果ファイルには、除外されたディレクトリのファイルがないことです。そこで。さらに最適化できるようです。

1
fduff