在QT中,如何区分调试和释放,就像预处理器一样

Ali*_*ljm 6 debugging qt 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_QT4_8_4-Release\sql";
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

Ama*_*tel 5

正确的Qt宏是QT_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
}
Run Code Online (Sandbox Code Playgroud)