簡體   English   中英

如何在Qt中分離發布和調試版本?

[英]How to separate release and debug builds in Qt?

我想將發布和調試版本的二進制文件放在源代碼旁邊的不同文件夾中。 在.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
}

對於發布版本,一切都很好。 我在項目的根目錄中有一個./release目錄。 但是對於調試版本,qmake沒有創建調試目錄,它的名字是release (再次!):

qmake CONFIG+=debug CONFIG+=local 
// generates release and put everything in that directory
// but I want debug directory !

更新:

替換調試和釋放的順序,使調試目錄。 qmake只能看到最后的配置...

如果你真的必須進行內部構建並擁有單獨的輸出目錄,我認為你需要將每個文檔的條件更改為

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
}

不過,不要問我為什么。 恕我直言QMake是一個可憎的,應該不惜一切代價避免......

真正的解決方案是進行源外構建。 這樣,每次從調試到發布構建和返回時,都不必重新配置。 這樣做,使用以下內容:

mkdir build-dbg
cd build-dbg
qmake ../foo.pro CONFIG+=debug
cd ..
mkdir build-rel
cd build-rel
qmake ../foo.pro CONFIG+=release

作為額外的加分,您不會使用構建碎片污染源樹。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM