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
}