1

私たちは、(とりわけ) すべてのコンパイラ警告を修正することによって、コードベースを整理している最中です。

最終的な目標は、すべての警告をエラーに変換するフラグをオンにすることです。システムとサードパーティのヘッダーでわずかな問題が発生しました。システム ヘッダーの中には、さまざまなコンパイラが警告を発する原因となるものがあります。明らかに、これらの警告を修正するためにシステム ヘッダーを変更することはできません。

intel コンパイラ (および gcc) では、インクルード パスを作成するときに -I の代わりに -isystem を使用して、それらのディレクトリのヘッダーがシステム ヘッダーであることをコンパイラに伝え、それらについての警告を停止します。次に、-Werror フラグをオンにするだけです。

Sun Studio 12 も使用しています。フラグ -errwarn=%all は -Werror と同等である必要がありますが、システム/サードパーティ ヘッダーの警告を無視するようにコンパイラに指示する方法が見つかりません。-erhrdr フラグがありますが、これは私が望むことをしていないようです。

Sun Studio 12でこれを達成する方法を知っている人はいますか?

4

3 に答える 3

2

明らかに、これはまさにあなたが望むものではありませんが、より良いものがなければ、問題のあるインクルードを #pragma error_messages ブロックにラップできます。例えば

#pragma error_messages (on , tag .. tag)

#include <map>
// etc

#pragma error_messages (default , tag .. tag)

ここで説明されているように。現在、Solaris にアクセスできないため、これは試していません。

于 2011-01-26T15:16:46.800 に答える
1

もう 1 つのオプションは、-errtagsを使用して警告タグを確認し、 -erroffで特定の警告をオフにすることです。

于 2014-08-28T02:46:36.613 に答える
0

残念ながら(私が知る限り)、errhdr旗はあなたが得ることができる最高のものです。Sun Studio 12はそのリリースで追加されたばかりなので、使用していることを確認してください。

于 2011-01-26T13:35:26.837 に答える