当前位置:  开发笔记 > 编程语言 > 正文

如何在Qt Creator中创建良好的模块化项目结构

如何解决《如何在QtCreator中创建良好的模块化项目结构》经验,为你挑选了0个好方法。

我花了很多时间思考如何为Qt C ++项目组织一个好的模块化结构。不幸的是,我没有找到一个完整的示例来说明如何正确地做(我遗漏了什么吗?),因此我正在寻找建议。到目前为止,我有以下假设:

我想为模块提供单独的目录,因为它们每个都可以在sevaral应用程序中使用。

我想对每个模块进行单元测试。

我还认为,在模块文件夹内进行keepng测试是一个不错的决定,因为如果我要移动或重命名模块,则不会有任何问题,因为我可以在测试中使用指向模块源的相对路径。

所以我想要的项目结构如下所示:

|project_root
    |src
        src.pro (TEMPLATE = subdirs)
        |apps
            apps.pro (TEMPLATE = subdirs)
            |my_app
                my_app.pro (TEMPLATE = app)
                main.cpp
                ...
        |modules
            modules.pro (TEMPLATE = subdirs)
            |my_module
                my_module.pro (TEMPLATE = ???)
                |tests
                    tests.pro (TEMPLATE = subdirs)
                    |MyClass1Test
                        MyClass1Test.pro (TEMPLATE = app)
                        tst_myclass1test.cpp
                    |MyClass2Test
                        MyClass2Test.pro (TEMPLATE = app)
                        tst_myclass2test.cpp
                MyClass1.h
                MyClass1.cpp
                MyClass2.h
                MyClass2.cpp

我的第一个问题是-在Qt Creator的逻辑范围内此结构是否良好?我做错了什么吗?

我的第二个问题是关于my_module.pro的实现。我应该在这里使用哪个模板?我正在研究四种类型的项目模板:subdirs,lib,aux和我无法按上述方式组织我的模块结构(这就是为什么我要寻找逻辑错误的原因)。这有一些原因:

如果我使用TEMPLATE = subdirsmy_module.pro,Qt Creator将无法识别其中的任何文件(MyClass1.h,MyClass1.cpp,...从项目结构分解器),并且我将无法再构建库

如果使用TEMPLATE = libTEMPLATE = aux,则无法在此文件夹中创建测试子项目

因此,我的第三个问题是:如何以一种好的方式组织我的项目来克服这些问题?

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有