我对qmake的条件语句出了什么问题

What is wrong with my conditional statement for qmake?

本文关键字:什么 问题 语句 qmake 条件 我对      更新时间:2023-10-16

main.cpp是:

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

.pr文件是:

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
 }

此论坛帖子(http://www.qtcentre.org/archive/index.php/t-6028.html)建议您可能需要使用qDebug或简单地使用!release。这完全没有经过测试,但值得一试。