ใน QT วิธีแยกแยะการดีบักและรีลีสในลักษณะเดียวกับตัวประมวลผลล่วงหน้า

ฉันรู้ว่าเราสามารถใช้ #if DEBUG #else #endif ใน c# ได้ ดังนั้นฉันคิดว่า 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";
}

แต่มันใช้งานไม่ได้


person Aliceljm    schedule 07.04.2013    source แหล่งที่มา
comment
คำถามที่คล้ายกัน: stackoverflow.com/questions/11714118/   -  person warunanc    schedule 07.04.2013


คำตอบ (1)


มาโคร 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
}
person Amartel    schedule 07.04.2013