Closed2

MSVC 外部ライブラリの警告抑制オプションの調査

shousenshousen

目的

/Wall オプションを指定して開発するが、自分たちが制御できない(書き換えられない)コードに起因して出力される警告を抑制したい.

MSDNのドキュメント

https://learn.microsoft.com/ja-jp/cpp/build/reference/external-external-headers-diagnostics?view=msvc-170

外部ライブラリとして扱う範囲の指定方法(使いそうなもの)

  • /external:anglebrackets
    • 山かっこ<>で囲ったヘッダ
  • /external:I path
    • pathで指定したディレクトリにあるヘッダ

抑制

  • /external:Wn
    • 外部ライブラリに対する警告設定. W0W4
  • /external:templates-
shousenshousen

/external:templates- の挙動はちゃんと記事に書いてあった...

  • /external:anglebrackets/external:W0の指定で外部ファイルの警告は抑制される
    • 記事にある通り、外部ファイル(ヘッダ)での警告は抑制され、外部ではないファイルでの警告は出力される
  • /external:templates- を追加で指定すると、外部ファイルでの警告を出力するようになる
    • テンプレート周り(定義とインスタンス化)に関しては、/external~を指定しない状態と同じ状態になる
このスクラップは2023/06/28にクローズされました