6

QT プロジェクトのコンパイル中に使用する警告レベルは?

W4 でコンパイルすると、次のような多くの警告が表示されます。

C4127: conditional expression is constant

W3 でコンパイルするか、W4 で警告を処理する他の方法を見つける必要があります。たとえば、新しいヘッダー ファイルを追加し、プラグマを使用します (C++ コーディング標準: 101 の規則、ガイドライン、およびベスト プラクティスで説明されています)。

あなたの習慣は何ですか?

ありがとう。

4

5 に答える 5

11

数年前に発生したのとまったく同じ問題に遭遇しました。コンパイラをレベル 4 の警告に設定して、可能な限り多くの潜在的な問題をキャッチするという問題です。当時、私は Qt とサポート契約を結んでおり、Qt のコードでこれほど多くの警告が生成された理由を尋ねました。彼らの反応は、彼らのコードが警告なしにコンパイルされることを決して保証しないというものでした. 彼らのコードが正しく実行されるということだけです。

何度か試行した後、以下に示すように、警告を無効にするプラグマで Qt ヘッダー ファイルを囲み始めました。

#pragma warning(push,3)  // drop compiler to level 3 and save current level
#include <QString>
#include <QVariant>
#include <QStack>
#include <QLabel>
#include <QtGui/QTableWidget>
#pragma warning(pop)    // restore compiler warning level

このようにすることで、Qt ヘッダー ファイルのみを低い警告レベルでコンパイルします。または、警告を取り除くために必要なレベル。個々の警告がまだ表示される場合があるため、警告レベルを上げるか、個々の警告を無効にすることができます

#pragma warning(disable: 4700)

一部の Boost ライブラリ ファイルにもこの問題があります。

于 2010-04-30T12:49:12.507 に答える
4

個人的には、qmake がデフォルトで生成する Makefile を使用するだけです... Nokia の連中が現在のビルド環境に適した Makefile を生成することを信頼できると仮定して。

ただし、qmake は警告に関するいくつかのオプションの引数を取ることがわかります。

The level of warning information can be fine-tuned to help you find problems in your project file:

-Wall 
qmake will report all known warnings.
-Wnone 
No warning information will be generated by qmake.
-Wparser 
qmake will only generate parser warnings. This will alert you to common pitfalls and potential problems in the parsing of your project files.
-Wlogic 
qmake will warn of common pitfalls and potential problems in your project file. For example, qmake will report whether a file is placed into a list of files multiple times, or if a file cannot be found.
于 2010-04-30T06:02:46.637 に答える