Как указать различные выходные каталоги Отладки/Выпуска в QMake .pro файл

У меня есть спокойный проект, и я хотел бы произвести файлы компиляции вне исходного дерева.

У меня в настоящее время есть следующая структура каталогов:

/
|_/build
|_/mylib
  |_/include
  |_/src
  |_/resources

В зависимости от конфигурации (отладка/выпуск) мне понравится производить получающиеся файлы в каталоге сборки в соответствии с каталогами сборки/выпуска или сборкой/отладкой.

Как я могу сделать то использование .pro файла?

104
задан Etienne Savard 5 April 2010 в 20:19
поделиться

3 ответа

Чтобы изменить каталог для целевой dll / exe, используйте это в своем профессиональном файле:

CONFIG(debug, debug|release) {
    DESTDIR = build/debug
} else {
    DESTDIR = build/release
}

Вы также можете изменить каталоги для других целей сборки, например объектные файлы и файлы moc (подробности см. в ссылке на переменную qmake или в ссылке на функцию qmake CONFIG () ).

49
ответ дан 24 November 2019 в 04:05
поделиться

Для моего проекта Qt я использую эту схему в файле * .pro:

HEADERS += src/dialogs.h
SOURCES += src/main.cpp \
           src/dialogs.cpp

Release:DESTDIR = release
Release:OBJECTS_DIR = release/.obj
Release:MOC_DIR = release/.moc
Release:RCC_DIR = release/.rcc
Release:UI_DIR = release/.ui

Debug:DESTDIR = debug
Debug:OBJECTS_DIR = debug/.obj
Debug:MOC_DIR = debug/.moc
Debug:RCC_DIR = debug/.rcc
Debug:UI_DIR = debug/.ui

Просто, но приятно! :)

147
ответ дан 24 November 2019 в 04:05
поделиться

Я использую тот же метод, что и chalup,

ParentDirectory = <your directory>

RCC_DIR = "$$ParentDirectory\Build\RCCFiles"
UI_DIR = "$$ParentDirectory\Build\UICFiles"
MOC_DIR = "$$ParentDirectory\Build\MOCFiles"
OBJECTS_DIR = "$$ParentDirectory\Build\ObjFiles"

CONFIG(debug, debug|release) { 
    DESTDIR = "$$ParentDirectory\debug"
}
CONFIG(release, debug|release) { 
    DESTDIR = "$$ParentDirectory\release"
}
13
ответ дан 24 November 2019 в 04:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: