我试图阻止在发布中显示某些错误消息(如我的问题Errors showing in Qt application - how to not display them in Release中所述)。
我正在使用Qt中的应用程序...在Windows,Mac OS X和Linux上。
对于Windows,检查符号非常简单:
#if defined (Q_OS_WIN32) && !defined (NDEBUG)
但是在Linux上检查NDEBUG,使用qmake构建项目时,NDEBUG无法识别......
所以我可以在专业文件中创建一个常量:
unix:CONFIG(release):DEFINES += NO_RELEASE_ERRORS
这适用于Linux和Windows。但是当我尝试使用mac时,在调试和发布配置之间切换似乎都给了我定义的常量......
我在MAC上安装了Qt 4.8,但其安装可能没有调试符号......
如何在MAC上找到可以触发或不显示错误的DEBUG和RELEASE类型的符号?
答案 0 :(得分:1)
TL; DR 在CONFIG
中测试调试或发布时,请使用两个参数测试函数CONFIG(x,debug|release)
,其中x
为debug
}或release
,具体取决于您要测试的内容。
CONFIG(release)
测试错误。您需要CONFIG(release,debug|release)
。请记住,debug
变量中有多个release
和CONFIG
条目(只需将其打印出来并亲自查看)。只有最后一个才算重要。这就是为什么你应该向CONFIG
测试函数提供第二个参数 - 它只会在 last 条目上匹配debug|release
,如果那个条目不是release
{1}},测试失败。