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
}