Qt - Аккуратное хранение проекта: различия между версиями
ILobster (обсуждение | вклад) (Новая страница: «right|70px При сборке проекта, особенно если это GUI-приложение, создаётся масса ...») |
ILobster (обсуждение | вклад) м (→Редактирование файла проекта: cpp) |
||
(не показаны 4 промежуточные версии 2 участников) | |||
Строка 1: | Строка 1: | ||
[[Файл:Qt-logo.png|right| | [[Файл:Qt-logo.png|right|110px]] | ||
__TOC__ | |||
== Введение == | |||
При сборке проекта, особенно если это GUI-приложение, создаётся масса файлов: | |||
* файлы <code>moc</code>-компилятора; | |||
* заголовочные файлы форм дизайнера; | |||
* объектные файлы | |||
* и прочие. | |||
И если вы в какой-то момент захотите получить "чистые" исходники вашего проекта, без нагенерированного добра, вы столкнётесь с проблемой, как же отличить свои исходники от файлов компилятора, чтобы спокойно удалить последние и не тратить на них место при переносе, например. | |||
Проект в <code>Qt</code> может быть настроен на ''теневую сборку'' - тогда все генерируемые файлы хранятся отдельно, на уровень выше ваших исходников проекта. При этом создаются два каталога: под <code>debug</code> сборку и под <code>release</code> сборку. Однако, если вид каталогов, расползающихся по вашему жёсткому диску и приумножающих хаос на нём, преисполняет ваше сердце горечью, то эта статья для вас. | |||
Как выглядит окно настройки сборки проекта на обычную (не теневую) сборку: | |||
[[Файл:Prodlenka.qt.store carefull.pic1.png|center]] | |||
При такой настройке дополнительных каталогов вне директории вашего проекта создаваться не будет. Однако, в этом случае все генерируемые файлы посыплются прямо в директорию проекта и перемешаются с вашими исходниками. Но этот хаос управляемый. Этим файлам можно выделить свой каталог и хранить их там, о чём будет рассказано далее. | |||
В то же время, есть ещё набор файлов. Они также складываются в каталог к вашему проекту и портят весь фэн-шуй. Это: | |||
* <code>Makefile</code>; | |||
* <code>Makefile.Debug</code>; | |||
* <code>Makefile.Release</code>; | |||
* <code>object_script.ВАШ_ПРОЕКТ.Debug</code>; | |||
* <code>object_script.ВАШ_ПРОЕКТ.Release</code>; | |||
* <code>ВАШ_ПРОЕКТ.pro.user</code>. | |||
Хаос из этих файлов неуправляемый. Они так и будут тут лежать и отравлять вам настроение. Ну да ладно, их можно будет удалить и вручную. | |||
== Редактирование файла проекта == | == Редактирование файла проекта == | ||
Чтобы разделить ваши исходники и генерируемые, необходимо добавить следующие строки в <code>.pro</code>-файл вашего проекта: | Чтобы разделить ваши исходники и генерируемые, необходимо добавить следующие строки в <code>.pro</code>-файл вашего проекта: | ||
<syntaxhighlight lang="cpp | <syntaxhighlight lang="cpp"> | ||
INCLUDEPATH += . \ | |||
MOC_DIR += generated/mocs # для файлов moc-компилятора | MOC_DIR += generated/mocs # для файлов moc-компилятора | ||
UI_DIR += generated/uis # для заголовочных файлов форм дизайнера | UI_DIR += generated/uis # для заголовочных файлов форм дизайнера | ||
Строка 16: | Строка 43: | ||
Теперь при сборке всё будет аккуратно раскладываться по соответствующим каталогам в директории <code>generated</code>. | Теперь при сборке всё будет аккуратно раскладываться по соответствующим каталогам в директории <code>generated</code>. | ||
[[Категория: | [[Категория:Погроммирование]] |
Текущая версия от 15:37, 24 января 2016
Введение
При сборке проекта, особенно если это GUI-приложение, создаётся масса файлов:
- файлы
moc
-компилятора; - заголовочные файлы форм дизайнера;
- объектные файлы
- и прочие.
И если вы в какой-то момент захотите получить "чистые" исходники вашего проекта, без нагенерированного добра, вы столкнётесь с проблемой, как же отличить свои исходники от файлов компилятора, чтобы спокойно удалить последние и не тратить на них место при переносе, например.
Проект в Qt
может быть настроен на теневую сборку - тогда все генерируемые файлы хранятся отдельно, на уровень выше ваших исходников проекта. При этом создаются два каталога: под debug
сборку и под release
сборку. Однако, если вид каталогов, расползающихся по вашему жёсткому диску и приумножающих хаос на нём, преисполняет ваше сердце горечью, то эта статья для вас.
Как выглядит окно настройки сборки проекта на обычную (не теневую) сборку:
При такой настройке дополнительных каталогов вне директории вашего проекта создаваться не будет. Однако, в этом случае все генерируемые файлы посыплются прямо в директорию проекта и перемешаются с вашими исходниками. Но этот хаос управляемый. Этим файлам можно выделить свой каталог и хранить их там, о чём будет рассказано далее.
В то же время, есть ещё набор файлов. Они также складываются в каталог к вашему проекту и портят весь фэн-шуй. Это:
Makefile
;Makefile.Debug
;Makefile.Release
;object_script.ВАШ_ПРОЕКТ.Debug
;object_script.ВАШ_ПРОЕКТ.Release
;ВАШ_ПРОЕКТ.pro.user
.
Хаос из этих файлов неуправляемый. Они так и будут тут лежать и отравлять вам настроение. Ну да ладно, их можно будет удалить и вручную.
Редактирование файла проекта
Чтобы разделить ваши исходники и генерируемые, необходимо добавить следующие строки в .pro
-файл вашего проекта:
INCLUDEPATH += . \
MOC_DIR += generated/mocs # для файлов moc-компилятора
UI_DIR += generated/uis # для заголовочных файлов форм дизайнера
RCC_DIR += generated/rccs # для файлов ресурсов
OBJECTS_DIR += generated/objs # для объектных файлов
Теперь при сборке всё будет аккуратно раскладываться по соответствующим каталогам в директории generated
.