2017-08-20 17 views
5

Core Guidelines checker toolをVS2015のC++ 11/14プロジェクトで使用したいと考えています。C++コアガイドラインチェッカーの無効化

私のコードでは、多くの警告を発するBoostの多くのライブラリを使用しています。 Boostは非常に巧妙な作業をたくさん行っており、図書館はほとんどが先行するガイドラインに準拠することを目的として書かれていないので、私はこれらの警告を心配していません。

しかし、このような警告の洪水で私のコードで(少なくともツールによると)実際の問題を見つけることができません。

サードパーティコードのすべての警告を抑制する方法はありますか?ブーストヘッダを#includeする前後にいくつかの属性がありますか?

私はVisual C++チームのブログからthis pageを読みましたが、見つけられませんでした。

+0

警告をタイプ別に抑制することはできますか?タイプごとにタイプします。 – Ripi2

+0

しかし、私は自分のコードの警告を無効にしたくない、私はBoostのためにそれらを抑制したい... – Francesco

答えて

1

文書化されていない環境変数CAExcludePathがあり、そのパス内のファイルから警告をフィルタリングします。私は通常、%CAExcludePath%を%Include%に設定して実行します。

また、(混合成功を収めて)例えばここを参照してください、のMSBuildからそれを使用することができます:Suppress warnings for external headers in VS2017 Code Analysis

MSVCは、この問題に対するより包括的なソリューションである必要がありGCCのシステムヘッダに似て何かに取り組んでいます。

1

現在、VSでは、サードパーティのライブラリからの警告を抑制する機能はまだ実験的ですが、確かに来ています。

VS 2017バージョン15.6プレビュー1には、サードパーティのライブラリからの警告を抑制する機能があります。次の記事では、第三者のライブラリのヘッダーを参照する用語として「外部ヘッダー」を使用しています。

https://blogs.msdn.microsoft.com/vcblog/2017/12/13/broken-warnings-theory/

上記の記事は、基本的に

  • は彼らからの警告を抑制するために、外部ヘッダ

のための警告レベルを指定し、外部ヘッダ

  • を指定することを言います。たとえば、外部ヘッダーがsome_lib_dirディレクトリにあり、外部ヘッダーに応じてmy_prog.cppにコードをコンパイルする場合は、次のコマンドを実行する必要があります。

    cl.exe /experimental:external /external:I some_lib_dir /external:W0 /W4 my_prog.cpp

    これはまだ実験的な機能であり、この機能の詳細については、将来変更される可能性があるため/experimental:externalが必要であることに注意してください。

    とにかく、Visual Studioの今後のリリースを待つ必要があります。