特别鸣谢:
使用子目录项目来 配置多个子工程/子模块
简述
我们在构建QT项目的时候,有时候希望每个界面分开编写,或者逻辑功能和界面分开编写,来解耦合,让我们的项目更多模块能够同时并行,而不是只有项目来完成所有的功能。咱们平时在写小项目的时候,直接使用一个QWidget Application就可以用来实现全部功能。
那么我们现在需要把某些功能编译成一个库,然后在主程序中对相关的库进行调用,我们需要用什么方式来实现呢?
就一起来思考一下这个问题吧,这篇文章也是记录我学习如何构建Qt多模块项目的一个过程。
项目配置概览
这次的实验项目的结构如下:
项目的多工程配置
如果需要管理多工程(pro),比如:库工程、界面工程,其中,每一个工程均可单独编译成功,但存在依赖关系。也就是说,lib2依赖于lib1,而UI依赖于lib2。
配置如下:
- 配置TEMPLATE为subdirs设置多工程
- 配置SUBDIRS,指定需要添加的工程模块
- 配置CONFIG为ordered指定顺序编译
举例来说,本次编写的测试工程的.pro就需要如下方式来编写:
TEMPLATE = subdirs
CONFIG += ordered # 按照SUBDIRS顺序来编译程序,保证先后的依赖关系
SUBDIRS +=