22

警告: メイン ファイルの #pragma once

部分的な AST を取得するために、clang を介してヘッダーを実行しています。

その警告を無効にすることは可能ですか?

4

5 に答える 5

12

-Wno-pragma-once-outside-headerコマンド ライン引数を使用します。ここで Clang のドキュメントを参照してください。

于 2016-03-10T12:34:39.853 に答える
5

「#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 だけなので、問題ないでしょう。:)

于 2014-02-12T22:15:10.077 に答える
0

このような警告を抑制するには、ソースのコンパイル中に-w(小文字wではなく大文字) オプションを使用します。W

于 2016-09-10T19:03:16.087 に答える
-3

それを制御するオプションはないため、コードでこの警告を禁止してください。

于 2013-05-24T10:47:27.173 に答える