当前位置: 首页 > news >正文

Qt pro 多项目、子目录、多层级配置(超级详细 + 实战模板)

目录

Qt pro 多项目、子目录、多层级配置(超级详细 + 实战模板)

一、核心概念:什么是多项目子目录(subdirs)?

典型项目结构(最标准)

核心规则

二、最外层总 pro(关键!)

三、子项目 pro 写法

1. 库项目 CoreLib.pro

2. 主程序 App.pro

四、多层级嵌套(子目录里还有子目录)

第二层 Libraries.pro

总 Project.pro

五、最常用高级配置

1. 统一输出目录(所有 exe、dll 放一起)

2. 子项目共享配置

3. 指定只编译某些模块

六、总结(面试 + 实战必背)

1. 多项目核心

2. 优点

3. 一句话面试答案

手把手教你:Qt Creator 中配置多项目子目录(subdirs)

一、最终要做成的项目结构(先看结果)

二、第 1 步:创建「总工程」(最关键)

三、第 2 步:往总工程里添加「子项目」

四、第 3 步:Qt Creator 会自动帮你配置好!

五、第 4 步:配置「依赖关系」(必须做)

六、第 5 步:让主程序 App 能使用库

七、第 6 步:统一输出目录(所有 exe、dll 放一起)

八、最终效果(Qt Creator 里长这样)

九、超级重点总结(Qt Creator 多项目口诀)


Qt pro 多项目、子目录、多层级配置(超级详细 + 实战模板)

这是Qt 大型项目必备技能,也是面试高频题,我给你讲最清晰、最标准、可直接落地的多层级 pro 配置方案。


一、核心概念:什么是多项目子目录(subdirs)?

一个大项目分成多个小项目,每个小项目有自己的.pro,最外层用一个总 pro管理它们。

典型项目结构(最标准)

plaintext

MyBigProject/ # 总工程 ├── MyBigProject.pro # 总配置(TEMPLATE = subdirs) ├── App/ # 主程序(exe) │ ├── App.pro │ └── main.cpp ├── CoreLib/ # 核心库(dll/lib) │ ├── CoreLib.pro │ └── xxx.cpp └── UiTools/ # 工具库 ├── UiTools.pro └── xxx.cpp

核心规则

  1. 总 proTEMPLATE = subdirs
  2. 子 proapplib
  3. 总 pro 用SUBDIRS管理子项目
  4. 可配置编译顺序、依赖关系

二、最外层总 pro(关键!)

MyBigProject.pro

qmake

TEMPLATE = subdirs # 必须是 subdirs # 子项目目录 SUBDIRS += \ CoreLib \ UiTools \ App # 编译顺序 + 依赖(非常重要) App.depends = CoreLib UiTools UiTools.depends = CoreLib
  • SUBDIRS:列出所有子项目文件夹名
  • xxx.depends谁依赖谁,控制编译顺序例子:App必须等CoreLibUiTools先编译完

三、子项目 pro 写法

1. 库项目 CoreLib.pro

qmake

QT += core gui TEMPLATE = lib # 库 TARGET = CoreLib DESTDIR = $$PWD/../bin # 输出到统一目录 SOURCES += xxx.cpp HEADERS += xxx.h

2. 主程序 App.pro

qmake

QT += core gui widgets TEMPLATE = app # 可执行程序 TARGET = App DESTDIR = $$PWD/../bin # 引用库 INCLUDEPATH += $$PWD/../CoreLib LIBS += -L$$PWD/../bin -lCoreLib SOURCES += main.cpp

四、多层级嵌套(子目录里还有子目录)

支持无限层级,例如:

plaintext

Project/ ├── Project.pro ├── App/ ├── Libraries/ │ ├── Libraries.pro │ ├── Network/ │ └── Database/ └── Tools/

第二层 Libraries.pro

qmake

TEMPLATE = subdirs SUBDIRS += Network Database

总 Project.pro

qmake

TEMPLATE = subdirs SUBDIRS += Libraries App Tools

五、最常用高级配置

1. 统一输出目录(所有 exe、dll 放一起)

qmake

# 在 总 pro 里配置 CONFIG(debug, debug|release) { DESTDIR = $$PWD/bin/debug } else { DESTDIR = $$PWD/bin/release }

2. 子项目共享配置

创建一个common.pri文件,所有子 pro 引用:

qmake

include($$PWD/common.pri)

3. 指定只编译某些模块

qmake

SUBDIRS += App CoreLib CONFIG += ordered # 按顺序编译

六、总结(面试 + 实战必背)

1. 多项目核心

  • 总工程TEMPLATE = subdirs
  • 子工程app/lib
  • SUBDIRS管理子项目
  • xxx.depends管理依赖顺序

2. 优点

  • 代码解耦
  • 模块化
  • 大型项目必备
  • 方便团队开发

3. 一句话面试答案

Qt 多项目使用 subdirs 模板,总 pro 管理子 pro,可配置编译顺序与依赖,实现模块化分层架构。

手把手教你:Qt Creator 中配置多项目子目录(subdirs)

我用最傻瓜、一步步、可直接照做的方式教你,5 分钟搞定多层级多 pro 工程


一、最终要做成的项目结构(先看结果)

plaintext

MyProject/ 👈 总工程 ├── MyProject.pro 👈 总 pro(subdirs) ├── App/ 👈 主程序(exe) │ └── App.pro ├── CoreLib/ 👈 核心库(dll) │ └── CoreLib.pro └── Utils/ 👈 工具库(dll) └── Utils.pro

二、第 1 步:创建「总工程」(最关键)

打开 Qt Creator → 新建项目

  1. 选择Other ProjectSubdirs Project
  2. 项目名:MyProject
  3. 完成创建

自动生成的 MyProject.pro 内容:

qmake

TEMPLATE = subdirs SUBDIRS += \ # 这里以后会自动/手动加入子项目

三、第 2 步:往总工程里添加「子项目」

右键点击总工程 → 新子项目

可以添加两种:

  1. App → 生成 exe
  2. Library → 生成 dll/lib

依次添加:

  • App(Application)
  • CoreLib(Library)
  • Utils(Library)

四、第 3 步:Qt Creator 会自动帮你配置好!

添加完后,你会发现:

MyProject.pro 自动变成:

qmake

TEMPLATE = subdirs SUBDIRS += \ App \ CoreLib \ Utils

Qt Creator 全部自动配置,不用你手写路径!


五、第 4 步:配置「依赖关系」(必须做)

比如:

  • App 依赖 CoreLib 和 Utils
  • Utils 依赖 CoreLib

打开MyProject.pro,在最后加:

qmake

# 编译顺序:先编译被依赖的,再编译依赖的 App.depends = CoreLib Utils Utils.depends = CoreLib

✅ 这样 Qt Creator 就会按正确顺序编译


六、第 5 步:让主程序 App 能使用库

打开App.pro,添加库的路径:

qmake

# 头文件路径 INCLUDEPATH += $$PWD/../CoreLib \ $$PWD/../Utils # 链接库 LIBS += -L$$PWD/../bin -lCoreLib -lUtils

七、第 6 步:统一输出目录(所有 exe、dll 放一起)

MyProject.pro里加:

qmake

# 所有子项目的输出目录都统一到 bin CONFIG(debug, debug|release) { DESTDIR = $$PWD/bin/debug } else { DESTDIR = $$PWD/bin/release }

所有子项目会自动继承这个路径,不用每个都配!


八、最终效果(Qt Creator 里长这样)

plaintext

MyProject ├─ App ├─ CoreLib └─ Utils
  • 运行→ 自动编译所有子项目
  • 清理→ 全部清理
  • 调试、运行、跳转定义全部正常

九、超级重点总结(Qt Creator 多项目口诀)

  1. 总工程 = Subdirs Project
  2. 子项目 = 右键添加新子项目
  3. 编译顺序 = .depends
  4. 路径统一 = 总 pro 里写 DESTDIR
  5. Qt Creator 自动管理,不用手写复杂路径

具体案例可看下篇文章

http://www.rkmt.cn/news/1432424.html

相关文章:

  • 英飞凌TC264单片机入门:手把手教你用ADS和龙邱开发板点亮第一个LED(附完整源码)
  • AI绘画提示词工程:从创作范式变革到工作流融合实践
  • 保姆级避坑指南:GD32F4移植FreeRTOS+LWIP后,Ping不通的5个常见原因及排查方法
  • 用Python复现水下图像增强经典论文:手把手教你搞定Color Balance and Fusion算法
  • Godot4.2实战:用AstarGrid2D给你的战棋游戏做个“行动力范围”高亮(含四种对角线模式详解)
  • Mathtype 7.0 安装后Word闪退?手把手教你手动替换残留的6.9文件(附文件路径截图)
  • ChatGPT如何重塑教育:从个性化学习到教师赋能的技术实践
  • 用PyTorch实现FNO(傅里叶神经算子):一个解决偏微分方程的AI新范式
  • 基于推特数据的情感分析实战:从数据抓取到模型集成
  • 遥感顶刊GRSL投稿后,我如何用21天搞定大修并成功录用?附Response Letter模板
  • 别再为多设备同步发愁了!NI-DAQmx通道扩展功能保姆级配置指南(含9469模块跨机箱实战)
  • AI与区块链融合:构建可信高效的零工经济新生态
  • 基于GPT API的轻量级AI智能体项目构建器:从原理到实践
  • C盘红了别慌!用Windows自带的磁盘清理工具(cleanmgr)一键删除windows.old,轻松腾出10GB+空间
  • 2026年5月北京老房改造装修公司推荐:十大排名评测市场份额老旧户型翻新案例价格 - 品牌推荐
  • 2022年AI趋势:超自动化、生成式AI、MLOps与负责任AI的企业落地指南
  • 企业级 Qt 全功能项目
  • 移动应用开发趋势:AI、5G、安全与跨平台技术实战解析
  • 别再只用立创EDA画简单板子了!用标准版搞定双层板布局布线实战心得
  • LlamaIndex 的索引结构深度解析
  • 别再死记硬背了!用这份贾俊平《统计学》第七版中英对照表,搞定你的SPSS/R/Python数据分析
  • 别急着删老版本!CentOS 7升级OpenSSH 9.3p2时,/etc/pam.d/sshd文件备份有多重要?
  • 哪家北京别墅装修公司专业?2026年5月推荐TOP5对比地下室防潮评测案例适用场景 - 品牌推荐
  • 告别Excel!用SPSS 25.0做时间序列预测,从数据导入到结果解读保姆级教程
  • 超算/内网环境救星:用conda-pack离线打包迁移Python+CUDA环境(含CUDA 12.2实战)
  • 终极3DS游戏存档管理指南:用JKSM守护你的游戏回忆
  • 网络安全初创公司如何通过行业竞赛验证技术与商业模式
  • AI病历质控工具到底值不值得上?——6家三甲医院18个月真实效能对比数据,第4项结果令人震惊
  • 从热电偶到应变片:如何用一个NI-DAQmx任务搞定混合传感器采集(LabVIEW实例详解)
  • 告别手动同步!保姆级教程:为Win10/Mac双系统时间错误配置Python自动校正服务