在所有平台上触发操作需要一致的调试常量

Need consistent debug constants for triggering actions on all platforms

本文关键字:常量 调试 操作 平台      更新时间:2023-10-16

我正在努力防止在Release中显示某些错误消息(正如我在Qt应用程序中显示错误-如何在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类型的符号?

TL;DRCONFIG中测试调试或发布时,请使用双参数测试函数CONFIG(x,debug|release),其中xdebugrelease,具体取决于要测试的内容。

CONFIG(release)测试错误。你需要CONFIG(release,debug|release)。请记住,CONFIG变量中有多个debugrelease条目(只需打印出来,自己查看)。只有最后一个才有意义。这就是为什么您应该为CONFIG测试函数提供第二个参数——它只作用于最后一个条目以匹配debug|release,如果该条目不是release,则测试失败。