Qt Creator如何运行SUBDIRS项目

时间:2017-01-06 21:26:48

标签: c++ qt qt-creator subdirs

我一直在使用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都是独立的独立项目,但它们共享一些源/头文件,以方便共享文件夹中的可维护性。

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

我的问题是,我刚刚对共享文件和project1进行了更改,但还没有更新project2。我如何从QtCreator运行project1以便我可以测试我的更改?显然,在每天/每周/每月结束时,我会修复project2来处理这些更改,但是我如何同时运行project1?

enter image description here

如果我右键单击project1,它会显示“运行”选项。但是,要在此处工作,整个“master.pro”必须能够无错误地编译。

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

对此的任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:3)

  

并非所有项目都准备好运行代码,我如何选择一个项目   运行,有子目录项目吗?

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

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

# 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

请在下面选择已启动项目:

enter image description here

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

答案 1 :(得分:0)

只需创建您的“主应用”。然后从这些应用程序编辑.pro文件:

TEMPLATE = subdirs

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

您可以 删除所有源文件

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

但这是你的主应用程序!只是简介!好的,和yourappname.pro.user ;-) 稍后你可以添加f.e.一个窗口应用程序。

然后你可以创建另一个项目,例如。一个DLL。对于这个新的子项目,您可以选择您想要的任何目录: - )

对于添加:单击“master-app”右键,然后从上下文菜单中选择“添加子项目”。

最后一步,在关闭“新子项目对话框”之前,您应该在组合框中选择主项目。

就是这样!更多不是必须的