У меня есть спокойный проект, и я хотел бы произвести файлы компиляции вне исходного дерева.
У меня в настоящее время есть следующая структура каталогов:
/
|_/build
|_/mylib
|_/include
|_/src
|_/resources
В зависимости от конфигурации (отладка/выпуск) мне понравится производить получающиеся файлы в каталоге сборки в соответствии с каталогами сборки/выпуска или сборкой/отладкой.
Как я могу сделать то использование .pro файла?
Чтобы изменить каталог для целевой dll / exe, используйте это в своем профессиональном файле:
CONFIG(debug, debug|release) {
DESTDIR = build/debug
} else {
DESTDIR = build/release
}
Вы также можете изменить каталоги для других целей сборки, например объектные файлы и файлы moc (подробности см. в ссылке на переменную qmake или в ссылке на функцию qmake CONFIG () ).
Для моего проекта 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
Просто, но приятно! :)
Я использую тот же метод, что и 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"
}