ソースベースの独自のファイルでcppcheckを呼び出します。ただし、一部のソースファイルには、./lib/some_library/
などのサードパーティライブラリのヘッダーファイルが含まれています。これらは、cppcheckによっても自動的に解析されます。
サードパーティのコードで警告を表示したくないので、これは必要ありません。これを回避する方法はありますか?
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
同様に、専用のサードパーティディレクトリに関するレポートを除外する必要がありました。そのために、CLIで直接--suppress
オプションを使用しました。
"C:\Program Files\Cppcheck\cppcheck" --suppress=*:*3rdparty\* --language=c++ --enable=all --xml --xml-version=2 . 2> cppcheck-result.xml
cppcheck
の興味深い点は、stdout
に「抑制された」ディレクトリを通過していることを示しますが、結果ファイルには、除外されたディレクトリのファイルがないことです。そこで。さらに最適化できるようです。