Как я могу дать команду файлу Qt Creator PRO выводить файлы * .o и файлы moc_ * в отдельную папку? - PullRequest
8 голосов
/ 31 мая 2011

В настоящее время QtCreator создает файлы .o и moc_ в корневой папке приложения.Как я могу указать файлу проекта поместить их в подпапку с именем "obj"?

Ответы [ 2 ]

9 голосов
/ 31 мая 2011

Для этого вы можете использовать переменные OBJECTS_DIR и MOC_DIR.например, сам Qt делает что-то подобное при сборке:

OBJECTS_DIR = .obj
MOC_DIR     = .moc

В этом случае я думаю, что каталоги .obj, .moc относятся к каталогу, содержащему Makefile.

3 голосов
/ 01 июня 2011

Для того, чтобы ваша основная (исходная) папка была чистой от двоичных и сгенерированных файлов, вы можете поместить следующие строки в ваш файл "myapp.pro":

DESTDIR = ../../bin
UI_DIR = .

CONFIG(debug, debug|release) {
        TARGET = myappd
        OBJECTS_DIR = ../../build/myapp/debug
        MOC_DIR = ../../build/myapp/debug
}

CONFIG(release, debug|release) { 
        TARGET = myapp
        OBJECTS_DIR = ../../build/myapp/release
        MOC_DIR = ../../build/myapp/release
}

Приведенные выше настройки подразумевают следующую структуру каталогов:

myprojects/source/myapp/   => containing myapp.pro + all other project files hpp, cpp etc.
myprojects/bin/  => containing myapp.exe & myappd.exe application files
myprojects/build/myapp/release  => object files + moc files (release)
myprojects/build/myapp/debug   => object files + moc files (debug)

Последние 3 каталога будут созданы автоматически, если они не существуют.

Преимущества этой схемы:

a.Вы можете переместить свой проект (каталог myapp) в другой родительский каталог, и он продолжит сборку в порядке из-за относительной спецификации каталогов bin & build

b.Вы можете добавить больше подпроектов в myprojects / source /

c.Вы можете создавать резервные копии (например, ZIP) всех папок myprojects / source / без каких-либо двоичных или сгенерированных файлов

...