2012-01-10 23 views
32

Qtにデバッグビルド専用のコードを含めるために正式にサポートされている方法を知っている人はいますか?例:Qtは(保証された)デバッグ定義を提供していますか?

#ifdef QT_DEBUG 
// do something 
#endif 

基本的にはQ_ASSERTと似ていますが、より複雑なテストです。

Qtフレームワークがデバッグマクロを定義することが保証されていることを示すドキュメントが見つからないようです。存在しない場合、どのような賢明だろう非公式方法は、この機能のプロジェクトを幅広く実装するには?

答えて

39

Qtは、リリースビルド用にQT_NO_DEBUGを定義します。それ以外の場合はQT_DEBUGが定義されます。

もちろん、を.proファイルに指定して、debugまたはreleaseのいずれかを指定することもできます。そして、あなたはQtの内部の定義に依存しません

debug { 
    DEFINES += MYPREFIX_DEBUG 
} 
release { 
    DEFINES += MYPREFIX_RELEASE 
} 

+0

を知っていますか? –

+1

いいえ、ソースを読んでいるだけです。公開されたAPIヘッダーの定義が非常に良い理由なく変更されることはありません。 – laalto

13

代替は、プロジェクトファイル内のようなものを書くことです。チェックデバッグモードの場合

+0

不合理な提案ではありませんが、私は具体的に**追加の定義を避けるために探していました。 –

+0

なぜですか?追加の定義でどのような欠点がありますか? – eSKon

4

#ifdef QT_DEBUG 
    //Some codes 
#endif 

チェック解除モードの場合:あなたは `QT_NO_DEBUG`が正式Qtフレームワーク外での使用のためにサポートされているという証拠で

#ifndef QT_DEBUG //<== Please note... if not defined 
    //Some codes 
#endif 
関連する問題