QtCreator:避免在Qt的子目录项目重新定义LIBS(QtCreator: Avoid red

2019-10-17 01:56发布

我有一个Qt subdirs project结构如下:

ExternalQtProject 
QtSubdirProjects
  - GUI
  - WebService

WebService包含LIBS从外部Qt工程(在WebService的.pro文件)

LIBS += -L<path to ExternalQtProject>
LIBS += <some ExternalQtProject .obj files>

GUI使用Web服务(在GUI .pro文件):

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), 是有办法避免这种重新定义LIBSGUI分项目?

- 编辑1 -

如何使用QMAKE的子目录模板? 帮助我更好地构建我的项目,但仍未避免重复LIBS

Answer 1:

QMAKE的.pro文件,可以使用变量,包括其他文件。

您可以如需要时使用SOMELIST = foo.obj bar.obj和LIBS + = $$ SOMELIST。

一个SUBDIRS模板用于列出不同的.pro文件,每个文件通常用于构建一个二进制或一个图书馆负责。



文章来源: QtCreator: Avoid redefining LIBS in Qt subdirs project