Qt Creator 如何 运行 SUBDIRS 项目

Qt Creator how to run SUBDIRS projects

我使用 Qt Creator 已经有一段时间了,我的项目越来越大,我想转而使用 Qt's SUBDIRS 模板类型来更好地组织我不断增长的项目。

我的项目结构类似如下

/master
 |--- master.pro
 `--- project1
 |    |--- project1.pro
 |    `--- ... (source files specific to project1)
 `--- project2
 |    |--- project2.pro
 |    `--- ... (source files specific to project2)
 `--- shared
      `--- ... (source files shared between project1 and project2)

project1 和 project2 都是单独的独立项目,但为了方便和可维护性,它们在共享文件夹中共享一些 source/header 文件。

我的大部分开发时间通常花在共享文件和 project1 上。因此,当我对共享文件进行更改时,project1 和 project2 最终都必须更新以使用这些共享文件。

我的问题是,假设我刚刚对共享文件和项目 1 进行了更改,但尚未更新项目 2。我如何从 QtCreator 运行 project1 测试我的更改?显然,在 day/week/month 结束时,我将修复 project2 以处理这些更改,但同时我将如何 运行 project1?

如果我右键单击 project1,它会显示 "run" 选项。然而,要让它在这里工作,整个 "master.pro" 必须能够无错误地编译。

我知道作为解决方法,我可以自己加载 project1.pro,但我想从子项目加载 master.pro 和 运行。

如有任何帮助,我们将不胜感激。

Not all of my projects ready to run the code, how can I select one project to run, having subdir root project?

您可以维护多个 TEMPLATE = app 项目来启动部分代码,例如,对选定库以及整个应用程序 GUI 启动器进行单元测试。并尝试在 TEMPLATE = lib 类型的项目中尽可能多地隔离共享代码。 lib 类型的项目需要是静态库还是动态的 DEFINES += SHAREDLIB_LIBRARY 是另一个问题,答案取决于您如何分发应用程序。我用许多动态库维护我当前的 subdir 项目,以防止它们由于内存限制而一直链接到可执行文件。

打开 'Projects' 菜单并确保 运行 配置指向包含主要功能的应用程序项目并具有:

# app.pro file contains
TEMPLATE = app

还有

# unit_test1.pro file contains
TEMPLATE = app

如果您的某些项目无法编译,请将其从 subdirs 项目中排除:

TEMPLATE = subdirs
SUBDIRS = lib unit-test
# SUBDIRS = lib unit-test app # app not ready
# app.depends = lib # may exclude dependcies
unit-test.depends = lib

介意'Run configuration'以下启动项目的选择:

P.S。不要忘记在项目文件更改后 运行 qmake。

只需 创建 您的 "master-app"。然后从这些应用编辑 .pro 文件:

TEMPLATE = subdirs

但在你做任何事情之前!这很重要!

您可以删除所有源文件

SOURCES += \ ...
HEADERS += \ ...
FORMS += \ ...
etc

但这是您的主应用程序!只是个人资料!好的,yourappname.pro.user ;-) 稍后您可以添加 f.e。一个 window-app.

然后您可以创建另一个项目,f.e。一个dll。对于这个新的子项目,您可以选择任何您想要的目录:-)

添加:单击 "master-app" 鼠标右键并从上下文菜单中选择 "Add subproject"。

最后一步,在关闭 "new subproject-dialog" 之前,您应该 select 组合框中的主项目。

就是这样!更多不是必需品