QtCreator:避免在Qt子目录项目中重新定义LIBS

时间:2012-07-23 16:31:54

标签: qt-creator libs subdirs

我有一个Qt subdirs project具有以下结构:

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中的几个头文件。

问题:我收到链接器问题,直到我在LIBS中包含WebService条目以及GUI,因此GUI结束了{{1}中的所有LIBS }}:

ExternalQtProject

由于存在明确的依赖关系(GUI-&gt; WebService-&gt; 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> LIBS的{​​{1}}重新定义项目

- 编辑1 -

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

1 个答案:

答案 0 :(得分:2)

Qmake .pro文件可以使用变量并包含其他文件。

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

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