在QT中,如何像预处理器一样区分调试和发布

在QT中,如何像预处理器一样区分调试和发布,qt,debugging,preprocessor,release,Qt,Debugging,Preprocessor,Release,我知道我们可以在c#中使用#if DEBUG#else#endif,所以我认为Qt也有同样的方法来实现这一点,如下所示: QString Paths::sqlScriptPath() { #if DEBUG return "D:\edocclient\edocclient-build-Desktop_Qt_4_8_4_QT4_8_4-Debug\sql"; #else return "D:\edocclient\edocclient-build-Desktop_Qt_4_8_4_

我知道我们可以在c#中使用#if DEBUG#else#endif,所以我认为Qt也有同样的方法来实现这一点,如下所示:

QString Paths::sqlScriptPath()
{
#if DEBUG
    return "D:\edocclient\edocclient-build-Desktop_Qt_4_8_4_QT4_8_4-Debug\sql";
#else
    return "D:\edocclient\edocclient-build-Desktop_Qt_4_8_4_QT4_8_4-Release\sql";
}

但是它没有工作。

正确的Qt宏是
Qt\u DEBUG
。因此,您的代码将是:

QString Paths::sqlScriptPath()
{
#ifdef QT_DEBUG
    return "D:\edocclient\edocclient-build-Desktop_Qt_4_8_4_QT4_8_4-Debug\sql";
#else
    return "D:\edocclient\edocclient-build-Desktop_Qt_4_8_4_QT4_8_4-Release\sql";
#endif
}
类似问题: