Linux Qt Creator配置(调试、发布)开关不工作

Linux Qt Creator配置(调试、发布)开关不工作,linux,windows,qt,qt-creator,Linux,Windows,Qt,Qt Creator,问题:无论Qt Creator 2.8.1 for Linux中选择了调试还是发布,都会对CONFIG(debug,debug | release)和CONFIG(release,deubg | release)进行评估 我在Qt Creator应用程序中的配置(库存-新项目的默认值): 我在proj.pro中的配置: message(Variable CONFIG:) message($$CONFIG) CONFIG(debug,debug|release) { message(Deb

问题:无论Qt Creator 2.8.1 for Linux中选择了调试还是发布,都会对CONFIG(debug,debug | release)和CONFIG(release,deubg | release)进行评估

我在Qt Creator应用程序中的配置(库存-新项目的默认值):

我在proj.pro中的配置:

message(Variable CONFIG:)
message($$CONFIG)
CONFIG(debug,debug|release)
{
    message(Debug build)
}
CONFIG(release,debug|release)
{
    message(Release build)
}
控制台上用于调试的输出:

Project MESSAGE: Variable CONFIG:
Project MESSAGE: lex yacc warn_on debug uic resources warn_on release incremental link_prl no_mocdepend release stl qt_no_framework debug console
Project MESSAGE: Debug build
Project MESSAGE: Release build
控制台上要释放的输出:

Project MESSAGE: Variable CONFIG:
Project MESSAGE: lex yacc warn_on uic resources warn_on release incremental link_prl no_mocdepend release stl qt_no_framework console
Project MESSAGE: Debug build
Project MESSAGE: Release build
在Windows7下,我没有遇到过这样的.pro配置的任何问题,它工作得很好。 我绝望了,修改了。pro文件:

CONFIG = test
message(Variable CONFIG:)
message($$CONFIG)
CONFIG(debug,debug|release)
{
    message(Debug build)
}
CONFIG(release,debug|release)
{
    message(Release build)
}
我对结果感到惊讶:

Project MESSAGE: Variable CONFIG:
Project MESSAGE: test
Project MESSAGE: Debug build
Project MESSAGE: Release build
所以,即使我完全清除了配置变量,它仍然可以看到调试和发布配置


我做错了什么?

Qmake疯了,这是唯一可行的解释。整个版本/调试多次处于配置中,闻起来像是一个旧的设计缺陷,在它被延迟之前从未得到解决,而且已经编写了太多的配置。还记得make中的标签吗?杜德有15个用户,所以他从来没有纠正过错误的决定

无论如何

我在linux上看到了同样的问题,Qt4.8.4.1

解决方法是:在用花括号括起来之前去掉断线

从字面上看,这是有效的:

CONFIG(release, debug|release) {
    message(Release)
}

CONFIG(debug, debug|release) {
    message(Debug)
} 
但这并不是:

CONFIG(release, debug|release) 
{
    message(Release)
}

CONFIG(debug, debug|release) 
{
    message(Debug)
} 

我怀疑这是qmake的一些版本中的一个解析错误,可能只是在linux端。

可能尝试运行'qmake CONFIG-=Debug'进行发布,运行'qmake CONFIG-=release'进行调试,正如您在第一段代码引用中看到的,我正在这样做。不,我不
t。我看到了
CONFIG+=debug
,而不是
CONFIG-=debug`Oops对不起,你是对的-Iv在发布之前将项目还原为股票,但在开始时Iv测试了debug:CONFIG-=release CONFIG+=debug;RELEASE:CONFIG-=debug CONFIG+=RELEASE。这是我Windows项目的默认配置,但在LinuxQtCreator下它不起作用——这就是我写这篇文章的原因。另外,库存Qt Creator没有按照我描述的方式工作。Windows上仍然存在问题,Qt 5.3.1,Qt Creator 3.1.2将Qt 5.6添加到该列表中-______-
CONFIG(release, debug|release) 
{
    message(Release)
}

CONFIG(debug, debug|release) 
{
    message(Debug)
}