1. ホーム
  2. c++

[解決済み] 編集したくないサードパーティのコードで、gccから出る未使用の変数の警告を無効にするにはどうしたらいいですか?

2022-09-27 06:22:47

質問

未使用変数の警告をオフにするためにgccコンパイラに渡すスイッチを知りたいのですが。 私はWindows上でboostのエラーを取得し、私はboostのコードに触れたくありません。

C:\boost_1_52_0/boost/system/error_code.hpp: At global scope:
C:\boost_1_52_0/boost/system/error_code.hpp:214:36: error: 'boost::system::posix_category' defined but not used [-Werror=unused-variable]
C:\boost_1_52_0/boost/system/error_code.hpp:215:36: error: 'boost::system::errno_ecat' defined but not used [-Werror=unused-variable]
C:\boost_1_52_0/boost/system/error_code.hpp:216:36: error: 'boost::system::native_ecat' defined but not used [-Werror=unused-variable]

の両方を使ってみました。 -Wunused-value-Wno-unused-value を追加しましたが、どちらも上記のメッセージは抑制されませんでした。

正しいコマンドは何ですか?これは私のコンパイルラインです。

g++  -g -fno-inline -Wall -Werror -Wextra -Wfloat-equal -Wshadow
-Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Wno-conversion 
-Wdisabled-optimization -Wredundant-decls -Wunused-value -Wno-deprecated 
-IC:\\boost_1_52_0 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 
-c -o op.o op.cpp

おそらく -Wall は私の目標を上書きしているのでしょうか?

どのように解決するのですか?

この -Wno-unused-variable スイッチでたいていうまくいきます。しかしながら、あなたのプロジェクトでこれらのことを気にしているならば、これは実に有用な警告です。しかし、GCCがあなたのコードにないものについて警告し始めると、迷惑になります。

私は、警告をオンにしておきながら -isystem の代わりに -I の代わりに、サードパーティーのプロジェクトのインクルードディレクトリのために、を使います。このフラグは、あなたがコントロールできないものについて警告しないようGCCに指示します。

たとえば、代わりに -IC:\\boost_1_52_0 の代わりに -isystem C:\\boost_1_52_0 .

お役に立てれば幸いです。グッドラック!