gpt4 book ai didi

c++ - Qt 项目管理与子项目 : Accessing classes from another project

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:40:39 25 4
gpt4 key购买 nike

我正在开发一个大型应用程序,为了组织和测试,我希望将其分成 3 个子项目;模型、 View 和 Controller 充当两者之间的中间类。

这是我目前的结构:

/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”是不够的。当我收到“没有这样的文件或目录”时。有没有办法明确地将它指向另一个对象的类?我是否必须在项目文件的某处添加依赖项?

最佳答案

在您的每个 pro 文件中,像这样设置您的包含路径:

INCLUDEPATH += $$PWD/..

然后,你可以包含像

这样的文件
#include "VIEW/mainwindow.h"

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

LIBS += -lView

另请注意,最有可能的是,您应该将 Controller 包含在您的 View 中,而不是相反。

关于c++ - Qt 项目管理与子项目 : Accessing classes from another project,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51522233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com