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, каждый из которых обычно отвечает за создание одной двоичной или одной библиотеки.

Другие вопросы по тегам