带有子项目的Qt项目管理:从另一个项目访问类

时间:2018-07-25 15:07:06

标签: c++ qt project

我正在开发一个大型应用程序,出于组织和测试的考虑,我希望将其分为三个子项目;一个模型,一个视图和一个控制器来充当两者之间的中产阶级。

这是我目前拥有的结构:

/Project
| Project.pro
|--- MODEL
|    |--- MODEL.pro
|    `--- ...source files
|--- VIEW
|    |--- VIEW.pro
|    `--- ... source files
|--- CONTROLLER
|    |--- CONTROLLER.pro
|    `--- ...source files

我的Project.pro看起来像这样

TEMPLATE = subdirs

SUBDIRS += \
    VIEW \
    CONTROLLER \
    MODEL

# where to find the sub projects
VIEW.subdir = VIEW
MODEL.subdir = MODEL
CONTROLLER.subdir = CONTROLLER

# what subproject depends on others
CONTROLLER.depends = VIEW MODEL

我在VIEW中有一个MainWindow类。如何在CONTROLLER项目中添加对它的引用,以便可以在CONTROLLER中的main.cpp中使用此MainWindow类?

简单的“ #include mainwindow.h”是不够的。当我得到一个“没有这样的文件或目录”。有没有一种方法可以将其明确指向另一个对象的类?我必须在项目文件的某处添加依赖项吗?

2 个答案:

答案 0 :(得分:0)

您的从属项目库吗?我不确定,但是此功能可能仅用于动态链接。

请参阅Qt文档中的TEMPLATE = lib示例

答案 1 :(得分:0)

在每个pro文件中,按如下所示设置您的includepath:

INCLUDEPATH += $$PWD/..

然后,您可以包含

之类的文件
#include "VIEW/mainwindow.h"

此外,如果要构建子项目来分离dll文件,则必须像这样添加dll的依赖项:

LIBS += -lView

还要注意,很可能应该在视图中包含控制器,而不是相反。