我有一个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
答案 0 :(得分:2)
Qmake .pro文件可以使用变量并包含其他文件。
你可以,例如在需要时使用SOMELIST = foo.obj bar.obj和LIBS + = $$ SOMELIST。
SUBDIRS模板用于列出不同的.pro文件,每个文件通常负责构建一个二进制文件或一个库。