2012-07-23 51 views
1

我有一个Qt subdirs project结构如下:QtCreator:避免重新定义在Qt的子目录LIBS项目

ExternalQtProject 
QtSubdirProjects 
    - GUI 
    - WebService 

WebService包含来自外部Qt工程LIBS(在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的几个头文件。

问题:我收到链接的问题,直到我包括WebServiceLIBS条目以及在GUI,所以GUIExternalQtProject所有LIBS结束:

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

- 编辑1 -

How to use QMake's subdirs template?帮助我更好地构建我的项目,但仍未避免LIBS

回答

2

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

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

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