如何在Qt中分离发布和调试版本?

sor*_*h-r 4 c++ qmake qt4

我想将发布和调试版本的二进制文件放在源代码旁边的不同文件夹中.在.pro文件中:

CONFIG(debug){
    DESTDIR = ./debug
    OBJECTS_DIR = debug/.obj
    MOC_DIR = debug/.moc
    RCC_DIR = debug/.rcc
    UI_DIR = debug/.ui
}

CONFIG(release){
    DESTDIR = ./release
    OBJECTS_DIR = release/.obj
    MOC_DIR = release/.moc
    RCC_DIR = release/.rcc
    UI_DIR = release/.ui
}
Run Code Online (Sandbox Code Playgroud)

对于发布版本,一切都很好.我在项目的根目录中有一个./release目录.但是对于调试构建,qmake没有创建调试目录,它的名字是release(再次!):

qmake CONFIG+=debug CONFIG+=local 
// generates release and put everything in that directory
// but I want debug directory !
Run Code Online (Sandbox Code Playgroud)

更新:

替换调试和释放的顺序,使调试目录.qmake只能看到最后的配置...

Mic*_*ild 5

如果你真的必须进行内部构建并拥有单独的输出目录,我认为你需要将每个文档的条件更改为

CONFIG(debug, debug|release){
    DESTDIR = ./debug
    OBJECTS_DIR = debug/.obj
    MOC_DIR = debug/.moc
    RCC_DIR = debug/.rcc
    UI_DIR = debug/.ui
}

CONFIG(release, debug|release){
    DESTDIR = ./release
    OBJECTS_DIR = release/.obj
    MOC_DIR = release/.moc
    RCC_DIR = release/.rcc
    UI_DIR = release/.ui
}
Run Code Online (Sandbox Code Playgroud)

不过,不要问我为什么.恕我直言QMake是一个可憎的,应该不惜一切代价避免......