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.html)建议您可能需要使用qDebug或简单地使用!release. 这完全未经测试,但值得一试。

于 2013-07-25T07:45:01.343 回答