g++ からの特定の警告を抑制したい。旗は知って-Wno-XXXいますが、もっと具体的なものを探しています。の警告の一部が必要ですが、すべて-Weffc++ではありません。lint でできることのようなもの - 特定のメッセージを無効にします。
これを行うための方法が gcc に組み込まれていますか? ラッパー スクリプトを作成する必要がありますか?
残念ながら、この機能は g++ では提供されていません。VC++ では、#pragma warningを使用して特定の警告を無効にすることができます。gcc では、特定のファイルまたはプロジェクトに対して特定の種類の診断を有効/無効にできるようにする診断プラグマが最も近いものです。
編集: GCC は 4.6.4 以降のプッシュ/ポップ警告をサポートしています (変更ログを参照)
一部の警告については、それらを無効にするコマンド ライン スイッチがあります。使用するスイッチを知るには、-fdiagnostics-show-optiongcc に渡します。
出力でgrep-vを使用できます。
無効にしたい警告によっては、コードで修正できる場合があります。例えば:
int main()
{
int i;
}
生成: foo.cc:4:警告:未使用の変数'i'
これはしませんが:
#define MARKUSED(X) ((void)(&(X)))
int main()
{
int i;
MARKUSED(i);
}
見たくないものを削除するフィルターに標準エラーをパイプします。たとえば、これは私のmakeファイルです:
main.o: main.cpp
g++ -c -Wall main.cpp 2>&1 | grep -v Wunused-variable