我对qmake的条件声明有什么问题?

时间:2013-07-25 07:22:51

标签: c++ qt

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 documentation

  

您也可以使用:运算符执行单行条件   任务;例如:

win32:DEFINES += QT_DLL

编辑:

更改

debug:DEFINES += CONDITION

DEBUG:DEFINES += "CONDITION"

解决了这个问题。为什么这是如此仍然是一个谜,因为我有:

CONFIG+=debug

CONFIG+=DEBUG
使用调试配置的qmake的

参数。

同样在文档中,他们使用小写:例如

macx:debug {
     HEADERS += debugging.h
 }

1 个答案:

答案 0 :(得分:1)

此论坛帖子(http://www.qtcentre.org/archive/index.php/t-6028.html)表明,您可能需要使用qDebug或仅!release。这完全未经测试,但值得一试。