警告: メイン ファイルの #pragma once
部分的な AST を取得するために、clang を介してヘッダーを実行しています。
その警告を無効にすることは可能ですか?
警告: メイン ファイルの #pragma once
部分的な AST を取得するために、clang を介してヘッダーを実行しています。
その警告を無効にすることは可能ですか?
-Wno-pragma-once-outside-header
コマンド ライン引数を使用します。ここで Clang のドキュメントを参照してください。
「#pragma once in main file」にはオプションがない-W
ため、通常の方法でオフにすることはできません。(ただし、Clang の開発者は、オプションのない警告は最悪であることを十分に認識しており、新しい警告には常に-W
オプションが表示されるという一般的な規則があります。残念ながら、古いコードのクリーンアップは、不満を抱いているユーザーのための演習として残されています。)-W
シェルのハッキングを気にしないのであれば、いつでも次のようなことができます:
# This gives the warning...
clang -c myheader.h
# ...This doesn't.
echo '#include "myheader.h"' | clang -c -x c++-header -o myheader.h.gch -
末尾-
の は、いつものように、「標準入力から読み取る」ことを意味します。は-x c++
、使用している言語を Clang に伝えます (ファイルがない場合、ファイル拡張子c++
からは判断できないため) c++-header
。
このようにして生成された 2 つの.gch
ファイルは、ビットごとに同一ではありません。私は、gch ファイルについて十分に知っているわけではありません。ただし、気にするのは Clang の AST だけなので、問題ないでしょう。:)
このような警告を抑制するには、ソースのコンパイル中に-w
(小文字w
ではなく大文字) オプションを使用します。W
それを制御するオプションはないため、コードでこの警告を禁止してください。