問題タブ [compiler-warnings]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
1545 参照

shell - エラーとしての警告をエミュレートするシェルスクリプト?

一部のコンパイラでは、警告をエラーとして設定できます。これにより、コンパイラの警告を残さないようにすることができます。これを行うと、コードがビルドされないためです。これは良いことです。

残念ながら、一部のコンパイラにはwarnings-as-errors のフラグがありません。

この機能を提供するシェル スクリプトまたはラッパーを作成する必要があります。

おそらく、コンパイル コンソールの出力を解析し、コンパイラの警告 (またはエラー) があった場合は失敗を返し、それ以外の場合は成功を返します。「失敗」とは、オブジェクト コードを生成してはならない (と私は思う) ことも意味します。

上記の明示的な要件と、それ以外の場合はコンパイラと同じように動作するという次の暗黙の要件を満たす、記述できる最も短くて単純な UNIX/Linux シェル スクリプトは何ですか: - すべてのフラグ、オプション、引数を受け入れます - stdout と stderr のリダイレクトをサポートします- 指示どおりにオブジェクト コードとリンクを作成する

キーワード: エレガントで、すべての要件を満たしています。

おまけ: GNU make ファイルに簡単に組み込むことができます。

ご協力いただきありがとうございます。

=== 手がかり === 別の問題に対するこの解決策は、シェル関数 (?) を使用して bash の stderr リダイレクトにテキストを追加することで解決される可能性があります。私の質問?

===回答状況===

簡潔な回答をしてくれたCharlie Martinに感謝しますが、残念ながら、それは私が始めたものです。しばらく前にそれを使用し、オフィスで使用するためにリリースしましたが、数時間以内に最も重大な欠点が指摘されました。警告なしでコンパイルに合格しますが、エラーのみです。コンパイラが動作しないことが確実なオブジェクト コードを提供することになるため、これは非常に悪いことです。単純なソリューションは、リストされている他の要件も満たしていません。

Adam Rosenfieldの略記と、pipefailをソリューションに導入してくれたChris Doddに感謝します。Chris の答えは最も近いように見えます。パイプフェイルは、コンパイルが実際にエラーで失敗した場合に、必要に応じて失敗することを保証する必要があると思うからです。クリス、pipefail はすべてのシェルで機能しますか? 上記の暗黙の要件の残りについて何か考えはありますか?

0 投票する
3 に答える
1483 参照

c - SQliteCの警告

私はsqlite3.cライブラリを使用しています。
140の変換警告でコンパイルされます。
私のセットアップの何が問題になっていますか?

ありがとう。

0 投票する
5 に答える
6085 参照

c++ - qmake / gccで警告を条件付きで無効にしますか?

私はQtで書かれ、Linux上でqmakeとgccを使用して構築されたソフトウェアプロジェクトに携わっています。品質がかなり低く、大量の警告を発するサードパーティのライブラリにリンクする必要があります。ソースコードで-W-Wallを使用したいのですが、-wを厄介なサードパーティライブラリに渡して、コンソールをノイズや乱雑さから解放し、コードの品質に集中できるようにします。

qmakeで、CFLAGS / CXXFLAGSを特定のファイルおよびライブラリに条件付きで追加する方法はありますか?

0 投票する
2 に答える
1216 参照

java - Jasperで生成されたJavaソースファイルでJSPのJavac警告を排除しますか?

Jasper コンパイラ (Tomcat を使用) で JSP をプリコンパイルし、次に Java コンパイラでプリコンパイルすると、次のような警告が表示さjavacれます (フラグが有効になっています)。javac-Xlint

さて、「ただの警告」ですが、私はクリーンビルドが好きなので、当然警告をなくしたいと思っています。確かに、-XlintJSP コンパイルをオフにすることもできますが、これ-Xlintは良いことなのでそのままにします。

この警告の例では、一般的な構文が使用されていないことが問題です。の代わりにList<String>、 しかありませんList。Jasper を書いている善良な人々は、Java5 以前の世界に閉じ込められたままの不幸な魂に対応しなければならないことを理解しています。それは問題ありませんが、なぜこれらの警告に苦しむ必要があるのでしょうか?

Jasper JSP コンパイラーによって作成された Java ソース・コードによって引き起こされる javac 警告を除去するよく知られた方法はありますか? 私は IDE 固有のソリューションには興味がありません (ただし、特定の IDE を使用する一部の人々にとっては部分的なソリューションになります)。一般的に適用可能なソリューションを探しています。

Jasper のソース コードをスキャンしても、汎用構文の発行を引き起こす「Java 5+」スイッチは見つかりませんでした。実際、逆に私はこれを見つけました:

これは、ハードコードされたコードがエレガントなジェネリック構文の注入の希望を失っていることを明確に示しています。

0 投票する
2 に答える
22312 参照

c - Cで「警告: returnはキャストなしでポインタから整数になります」とはどういう意味ですか?

私は、6 ビットの数値を取得し、最初の 3 ビットを計算し、それに基づいて "r"、"w"、または "o" を返すことを目的とする単純な関数を C で作成しています。

ただし、コンパイルすると、「リターンはキャストなしでポインターから整数になります」という警告が表示されます。次に、プログラムを実行すると、関数が奇妙な文字を返していることがわかりました。

ここで何が起こっているのですか?前もって感謝します。

これが私の機能です:

0 投票する
4 に答える
632 参照

c - C で関数ポインタを使用する場合の警告

これは実際には重要ではない質問ですが、ほとんどの場合、関数ポインターを使用してこの警告を受け取りますが、それでも自分で理由を理解できませんでした。次のプロトタイプを検討してください。

これまでのところ、1,000 行のコードをコンパイルしても、警告はゼロです。だから私は宣言を正しく書いたと仮定しています。しかし、ツリー ノードに格納されているデータは単純な構造体であるため、デストラクタとして free を渡してコードで呼び出します。

そして、これは私に"warning: passing argument 2 of 'tree_destroyLineage' from incompatible pointer type"メッセージを受け取ります。私の最初の仮説は、コンパイラーがコンパイル時にPointervoid *が同じものであることを理解できなかったというものでした。そのため、呼び出しを「再渡す」関数ポインターとまったく同じタイプの別の関数を作成し、関数ポインターをfree()変更してみました。 void *Pointer の代わりに aを受け入れる宣言。どちらのアプローチでも、まったく同じ場所でまったく同じ警告が表示されました。

私は何を間違っていますか、どうすれば解決できますか?

0 投票する
1 に答える
1468 参照

delphi - インクルード ファイルから現在のユニットの名前を取得する方法はありますか?

あるフレームワーク ライブラリから別のフレームワーク ライブラリにいくつかのコードを移植しています。これには、コードをコンパイルするためだけにコードの大きなセクションをコメント アウトし、慎重に復元する必要があります。その間、すべてのコードがコメントアウトされているため、大量の警告が表示されます。そこで、それらを抑制する簡単なインクルード ファイルを作成することにしました。

大量の警告を表示しているすべてのユニットにこれを含めましたが、コンパイルすると、コンパイラは次のようなメッセージを返します。

[DCC 警告] unfinished.inc(1): W1054 コメントアウトされたコードを持つ未移植ユニットの警告が抑制されました

インクルードファイル自体ではなく、インクルードを行っているユニットから警告が発生していることを教えてください。$MESSAGEディレクティブをインクルードファイルから実際に移動せずに、これを行ったすべてのユニットに移動することなく、それを行う方法、またはユニットの名前をメッセージに入れる方法はありますか?

0 投票する
3 に答える
6292 参照

eclipse - Eclipse - @SuppressWarnings("javadoc") が機能しない

パブリック要素の javadoc コメントとタグが欠落しているという警告を表示するように Eclipse を構成しています。これは、コードを適切に文書化するために非常に役立ちます。

しかし、時々私はクラスを持っています。そこでは、DFA の状態などを説明するいくつかの定数があります..これらの定数は自己説明的であるため、文書化する必要はありません..

だから私は注釈@SuppressWarnings("javadoc")をクラスに追加しました。これが私のポイントです.Eclipseは注釈を考慮せず、欠落しているjavadocに関する警告を表示します..

@SuppressWarnings("all")は仕事をしますが、それには望ましくない副作用があります;-)

同じ問題が発生していますか? これはバグですか、それとも設定が間違っているだけですか? 回避策はありますか?それとも、これは新しいバージョンで修正されていますか?

PS: 私はバージョンを使用しています: 3.3.2 ビルド ID: M20080221-1800

0 投票する
6 に答える
11300 参照

c++ - C++ では、同じ名前の 2 つの変数を同じスコープで表示できるのはいつですか?

このコードは、悪い習慣として扱われるべきだと私が考えるものを示しており、変数の再定義またはマスクに関するコンパイラからの警告を引き出します。

その出力 (g++ でコンパイル):

私はいくつかの参考文献 (Stroustrup と The Complete C++ Reference) を見てきましたが、これが許可される時期と理由については何も見つかりません。ただし、それが単一のローカルスコープ内にないことは知っています。

いつ、なぜこれが許可されるのですか? この構造の良い用途はありますか? どうすればg ++に警告してもらうことができますか? 他のコンパイラはそれについて不平を言っていますか?