0

main.cpp は次のとおりです。

#include <iostream>

int main()
{
#ifdef CONDITION
    std::cout << "built in debug mode" << std::endl;
#endif
    return 0;
}

.pro ファイルは次のとおりです。

SOURCES += main.cpp

debug:DEFINES += "CONDITION"

問題は、リリース ビルドとデバッグ ビルドの両方が出力されることです。

built in debug mode

私は何が欠けていますか?

qmakeのドキュメントによると

: 演算子を使用して、単一行の条件付き代入を実行することもできます。例えば:

win32:DEFINES += QT_DLL

編集:

変化

debug:DEFINES += CONDITION

DEBUG:DEFINES += "CONDITION"

問題を修正します。私が持っているので、なぜこれがそうであるのかは謎のままです:

CONFIG+=debug

はない

CONFIG+=DEBUG

デバッグ構成を使用した qmake の引数。

また、ドキュメントでは小文字を使用しています。

macx:debug {
     HEADERS += debugging.h
 }
4

1 に答える 1

1

このフォーラムの投稿 ( http://www.qtcentre.org/archive/index.php/t-6028.htmlqDebug ) は、または単に使用する必要があることを示唆しています!release。これは完全にテストされていませんが、試してみる価値があります。

于 2013-07-25T07:45:01.343 に答える