问题:在Linux上使用Qt Creator 2.8.1时,无论选择debug或release,CONFIG(debug, debug|release)和CONFIG(release, debug|release)总是被评估。
我的Qt Creator应用程序配置(股票 - 新项目的默认设置):
Projects->Build Settings->Debug Build Steps:
qmake build configuration: Debug
Effective qmake call: qmake2 proj.pro -r -spec linux-gnueabi-oe-g++ CONFIG+=debug
Projects->Build Settings->Release Build Steps:
qmake build configuration: Release
Effective qmake call: qmake2 proj.pro -r -spec linux-gnueabi-oe-g++
我的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
在Windows 7下,我没有遇到任何与这样的.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
即使我完全清除CONFIG变量,它仍然会看到调试和发布配置。我做错了什么?
CONFIG+=debug
,而不是CONFIG-=debug
。 - dvvrd