Я уже давно пользуюсь Qt Creator, и мой проект становится достаточно большим, и я бы хотел перейти к использованию СУБДИРЫ Qt Тип шаблона, чтобы лучше организовать мой растущий проект.
Структура моего проекта похожа на следующую
/master
|--- master.pro
`--- project1
| |--- project1.pro
| `--- ... (source files specific to project1)
`--- project2
| |--- project2.pro
| `--- ... (source files specific to project2)
`--- shared
`--- ... (source files shared between project1 and project2)
И project1, и project2 являются отдельными независимыми проектами, но в них есть некоторые исходные / заголовочные файлы, которые они совместно используют для удобства и удобства сопровождения в общей папке.
Большая часть моего времени разработки в основном уходит на работу с общими файлами и проектом1. Поэтому, когда я делаю изменения в общих файлах, и project1, и project2 должны, в конце концов, быть обновлены для работы с этими общими файлами.
Моя проблема, скажем, я только что внес изменения в общие файлы и проект1, но еще не обновил проект2. Как мне из QtCreator запустить project1, чтобы я мог проверить свои изменения? Очевидно, что в конце дня / недели / месяца я исправлю project2 для работы с этими изменениями, но как мне запустить project1 в это время?
Если я щелкну правой кнопкой мыши на project1, он покажет вариант «запустить». Однако, чтобы это работало здесь, весь «master.pro» должен иметь возможность компилироваться без ошибок.
Я знаю, как обходной путь, я мог бы просто загрузить project1.pro сам по себе, но я бы хотел загрузить master.pro и запустить его из подпроекта.
Любая помощь по этому вопросу будет принята с благодарностью.
Не все мои проекты готовы к запуску кода, как я могу выбрать один проект для
запустить, имея root-проект subdir?
Вы можете поддерживать несколько TEMPLATE = app
проекты для запуска частей вашего кода, скажем, модульные тесты для выбранных библиотек, а также для всего графического интерфейса приложения. И попробуйте выделить как можно больше общего кода в TEMPLATE = lib
типы проектов. Будь то lib
Тип проекта должен быть статической библиотекой или динамическим с DEFINES += SHAREDLIB_LIBRARY
это еще один вопрос, и ответ зависит от того, как вы распространяете приложение. Я поддерживаю мой текущий subdir
проект со многими динамическими библиотеками, чтобы предотвратить их постоянное связывание с исполняемым файлом из-за ограничений памяти.
Откройте меню «Проекты» и убедитесь, что Run Configuration указывает на проект приложения, который содержит основную функцию и имеет:
# app.pro file contains
TEMPLATE = app
а также
# unit_test1.pro file contains
TEMPLATE = app
Если некоторые из ваших проектов не скомпилируются, исключите их из subdirs
проект:
TEMPLATE = subdirs
SUBDIRS = lib unit-test
# SUBDIRS = lib unit-test app # app not ready
# app.depends = lib # may exclude dependcies
unit-test.depends = lib
Выберите «Запустить конфигурацию» для запуска проектов ниже:
Постскриптум Не забудьте запустить qmake после изменения файла проекта.
Просто Создайте ваше «мастер-приложение». Затем отредактируйте файл .pro из этих приложений:
TEMPLATE = subdirs
но прежде чем делать что-то еще! Это важно!
Вы можете удалить все исходные файлы
SOURCES += \ ...
HEADERS += \ ...
FORMS += \ ...
etc
Но это ваше мастер-приложение! Просто профиль! хорошо, и yourappname.pro.user 😉
Позже вы можете добавить е.е. окно-приложение.
затем Вы можете создать другой проект, например длл. Для этого нового подобъекта вы можете выбрать любой каталог, который вам нужен 🙂
Для добавления: щелкните правой кнопкой мыши «master-app» и выберите «Add subproject» из контекстного меню.
Последний шаг, перед тем как закрыть «новый подпроект-диалог», вы должны выбрать мастер-проект в выпадающем списке.
Это оно! Больше не обязательно