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 组合框中的主项目。
就是这样!更多不是必需品
我使用 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 组合框中的主项目。
就是这样!更多不是必需品