QtCreator: Избегайте переопределения LIBS в проекте Qt subdirs
У меня есть Qt subdirs project
со следующей структурой:
ExternalQtProject
QtSubdirProjects
- GUI
- WebService
WebService
содержит LIBS
из внешнего проекта Qt (файл.pro в WebService)
LIBS += -L<path to ExternalQtProject>
LIBS += <some ExternalQtProject .obj files>
GUI
использует веб-сервис (файл.pro в GUI):
LIBS += -L<path to WebService>
LIBS += <WebService .obj files>
Так в основном GUI
использует один заголовочный файл из WebService
который, в свою очередь, использует несколько заголовочных файлов из ExternalQtProject
,
Проблема: я получаю проблемы с компоновщиком, пока не включу LIBS
записи из WebService
а также в GUI
, так GUI
заканчивается со всеми LIBS от ExternalQtProject
:
LIBS += -L<path to ExternalQtProject> # I want to avoid redefinition of this
LIBS += <some ExternalQtProject .obj files> # I want to avoid redefinition of this
LIBS += -L<path to WebService>
LIBS += <WebService .obj files>
Поскольку существует четкая зависимость (GUI->WebService->ExternalQtProject), существует ли способ избежать этого переопределения LIBS
для GUI
суб проект?
- Правка 1 -
Как использовать шаблон подкаталогов QMake? помогает мне лучше структурировать свой проект, но пока не избегает дублирования LIBS
1 ответ
Файлы Qmake .pro могут использовать переменные и включать другие файлы.
Например, вы можете использовать SOMELIST=foo.obj bar.obj и LIBS += $$SOMELIST, когда это необходимо.
Шаблон SUBDIRS используется для перечисления различных файлов.pro, каждый из которых обычно отвечает за создание одной двоичной или одной библиотеки.