【问题标题】:QtCreator: Avoid redefining LIBS in Qt subdirs projectQtCreator:避免在 Qt 子目录项目中重新定义 LIBS
【发布时间】:2012-07-23 16:31:54
【问题描述】:

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

ExternalQtProject 
QtSubdirProjects
  - GUI
  - WebService

WebService 包含来自外部 Qt 项目的LIBS(WebService 中的.pro 文件)

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

GUI 使用网络服务(GUI 中的.pro 文件):

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

所以基本上GUI 使用来自WebService 的一个头文件,而后者又使用来自ExternalQtProject 的几个头文件。

问题:在我将来自WebServiceLIBS 条目以及GUI 中包含之前,我遇到了链接器问题,所以GUI 最终得到来自ExternalQtProject 的所有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),有没有办法避免LIBSGUI子项目的这种重新定义

-- 编辑1--

How to use QMake's subdirs template? 帮助我更好地构建我的项目,但还不能避免 LIBS 的重复

【问题讨论】:

    标签: qt-creator libs subdirectory


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-27
      • 1970-01-01
      • 1970-01-01
      • 2010-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多