QT中多项目管理问题,同时构建多个项目

news2024/11/26 18:22:00

QT中多项目管理问题

0.前言

在编写项目的过程中,当项目比较多时,需要进行统一的管理,这时可以使用qt的子项目管理的方式。

参考:

  1. QT 创建多个子项目,以及调用:https://blog.csdn.net/chen1231985111/article/details/126251292

  2. QtCreator按顺序编译多个子项目:https://blog.csdn.net/weixin_41111116/article/details/126572024

  3. Qt多工程多目录的编译案例:https://www.shuzhiduo.com/A/VGzl69DO5b/

1.创建子目录项目(类似VS中的解决方案)

这个子项目类似于Visual Studio中解决方案一样的存在,用于管理多个其他子项目。点击文件->新建文件或项目->其他项目->子目录项目->Choose
在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lNaGEL93-1677746891112)(.images/06-QT多项目管理/image-20230302155619084.png)]

之后下一步,选择需要的编译器,我这里只有mingw,若有msvc编译器也可选择msvc,不同的编译器生成的静态库文件后缀名不一样,mingw后缀为.amsvc后缀为.lib。我这里使用的是msvc编译器。

创建好的子项目目录如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5bMsmDkF-1677746891113)(.images/06-QT多项目管理/image-20230302155813613.png)]

2. 创建SubProjectSln的子项目

先创建两个应用程序子项目。

在项目名上右键,选择新子项目,或者是已经存在的项目Add Existing Projects...

创建两个应用程序项目(QT的窗体项目)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vFOMUnDl-1677746891113)(.images/06-QT多项目管理/image-20230302161020154.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-06OJWfCL-1677746891113)(.images/06-QT多项目管理/image-20230302161001505.png)]

这时项目的SubProjectSln.pro为:

# 指定编译后生成app 还是 lib, subdirs这里代表的是一个子目录项目
TEMPLATE = subdirs

# 添加子项目
SUBDIRS += \
    app_01 \
    app_02

这里最主要的就是这个项目文件

  • TEMPLATE不为subdirsSubProjectSln就不能创建子项目
  • SUBDIRS的项目顺序默认就是构建的顺序。

如果添加多个应用程序的项目(就是可执行的那种,有.exe,有main函数的那种),运行总的项目,只能有一个应用程序执行,默认执行的是先添加进来的项目。

3.添加动态库子项目

创建两个动态库子项目。

先右键项目名,选择新子项目,选择Library下的C++ Library

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YFykyRdA-1677746891114)(.images/06-QT多项目管理/image-20230302161813867.png)]

创建好之后目录结构为:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iMiLoEIj-1677746891114)(.images/06-QT多项目管理/image-20230302162926641.png)]

在动态库子项目的.pro中添加一些相关的配置

# DESTDIR:指定最终文件生成的目录,相对路径为当前总项目的构建路径,每个子项目有一个以项目名命名的文件夹,
DESTDIR = ./bin
# TARGET:指定编译后生成的目标文件名称,如 xxx.dll,如果不写的话,默认以子项目名为名字
TARGET = lib_01_d.dll

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XOwvMlSX-1677746891114)(.images/06-QT多项目管理/image-20230302164645089.png)]

4.进行构建

SubProjectSln.pro中添加CONFIG+=ordered,必须添加这个才可以把所有的子项目都构建了,运行时只运行最先添加进来的有main函数的那个子项目。

# CONFIG选项要求各个子项目按顺序编译,子目录的编译顺序在SUBDIRS中指明
CONFIG+=ordered

直接在总项目上执行构建操作

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PLdNLwNc-1677746891114)(.images/06-QT多项目管理/image-20230302164458252.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ItU2INlK-1677746891115)(.images/06-QT多项目管理/image-20230302164414408.png)]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/384602.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker--(四)--搭建私有仓库(registry、harbor)

私有仓库----registry官方提供registry仓库管理(推送、删除、下载)私有仓库----harbor私有镜像仓库1.私有仓库----registry官方提供 Docker hub官方已提供容器镜像registry,用于搭建私有仓库 1.1 镜像拉取、运行、查看信息、测试 (一) 拉取镜像 # dock…

企业级分布式数据库 - GaussDB介绍

目录 什么是GaussDB 简介 应用场景 产品架构 产品优势 安全 责任共担 身份认证与访问控制 数据保护技术 审计与日志 ​​​​​​​监控安全风险 ​​​​​​​故障恢复 ​​​​​​​认证证书 GaussDB与其他服务的关系 约束与限制 计费模式 什么是GaussDB …

如何在openKylin操作系统上搭建Qt开发环境

一、获取linux系统下的Qt安装包 Qt官网下载地址:https://download.qt.io 国内镜像下载地址:https://mirrors.cloud.tencent.com/qt/ 。建议用镜像下载速度快。集成安装包在 official_releases/qt 目录下,新地址:https://downloa…

避免重启应用,10倍提升本地研发效率

谁在消耗我们的开发时间? 修改一点代码要重启项目,每次都要浪费很多时间进行方法调试时,要么需要Http请求,要么写个单元测试,非常烦 思考:有没有可能实现热部署随意测试任何一个方法? 热部署 …

开源计划 - 用海量设备汇聚成一台巨型处理器的开源项目

巨型处理器特性1. 由各种能够联网的普通智能设备组成2. 模拟硬件3. 存储器即处理器4. 数据处理的匿名化在2016年的时候,曾经设想过一种处理器。运行在海量的浏览器之上,可用于处理大规模的GPS地理定位距离的运算。后来开始逐渐做了新的延伸,打…

SpringCloud之服务拆分和实现远程调用案例

服务拆分对单体架构项目来说:简单方便,高度耦合,扩展性差,适合小型项目。而对于分布式架构来说:低耦合,扩展性好,但架构复杂,难度大。微服务就是一种良好的分布式架构方案&#xff1…

Git-学习笔记01【Git简介及安装使用】

Java后端 学习路线 笔记汇总表【黑马-传智播客】Git-学习笔记01【Git简介及安装使用】Git-学习笔记02【Git连接远程仓库】Git-学习笔记03【Git分支】目录 01-git的历史 02-git和svn的对比 03-git的安装 04-向本地仓库中添加文件 05-修改文件内容并提交 06-删除本地仓库中…

SpringCloud全家桶— — 【1】eureka、ribbon、nacos、feign、gateway

SpringCloud全家桶— — 组件搭建 1 Eureka 1.1 Eureka-server 创建eureka-server的SpringBoot项目 ①导入依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId…

【Python实战】2023关键词是小孩儿?某歌结婚生女一步到位,Hu歌官宣已婚产女后的W博,笑死哈哈哈哈(爬虫+数据可视化)

前言 办公室里很多喜欢Hu歌的小姑娘&#xff0c;听说他结婚了&#xff0c;而且孩子都生了&#xff0c;都非常惊讶。 就是我也是今天才知道的&#xff0c;哈哈哈哈&#xff08;交通闭塞了些&#xff09;&#x1f602;&#x1f602;。 所有文章完整的素材源码都在&#x1f447;…

Java常见知识点汇总

Java常见知识点汇总基础概念与常识1.Java 语言有哪些特点?2.JVM vs JDK vs JRE3.什么是字节码?采用字节码的好处是什么?4.为什么不全部使用 AOT 呢&#xff1f;5.为什么说 Java 语言“编译与解释并存”&#xff1f;6.Oracle JDK vs OpenJDK7.Java 和 C 的区别?基本语法1.注…

codeforces周赛div3#855记录

目录 总结 一&#xff0c;A. Is It a Cat? 二&#xff0c;B. Count the Number of Pairs 三&#xff0c;C1. Powering the Hero (easy version) 四&#xff0c;C2. Powering the Hero (hard version) 总结 真羡慕ACM校队的同学&#xff0c;能AC七八题&#xff0c;甚至ak …

飞天云动,站在下一个商业时代的门口

ChatGPT的爆火让AIGC再度成为热词&#xff0c;随之而来的是对其商业化的畅想——不是ChatGPT自身如何盈利&#xff0c;而是它乃至整个AIGC能给现在的商业环境带来多大改变。 这不由得令人想起另一个同样旨在改变世界的概念&#xff0c;元宇宙。不同的是&#xff0c;元宇宙更侧…

Apache Flink 1.16 功能解读

摘要&#xff1a;本文整理自阿里云高级开发工程师 Apache Flink Committer、Flink 1.16 Release Manager 黄兴勃&#xff08;断尘&#xff09;&#xff0c;在 FFA 2022 核心技术专场的分享。本篇内容主要分为四个部分&#xff1a;综述持续领先的流处理更稳定易用高性能的批处理…

传输线的物理基础(一):地、信号和均匀传输线

我们每天都听到用到传输线&#xff0c;那么什么是传输线呢&#xff1f;一条同轴线缆是传输线&#xff0c;多层PCB板中带参考平面的PCB走线是传输线&#xff0c;我们可以理解为&#xff0c;传输线由任意两个具有长度的导体组成。接下来我们会看到&#xff0c;一条传输线用来将信…

想象力训练

一、课程目的1、了解想象力2、想象力训练二、静态想象法常用在单一图片上&#xff0c;比如一辆自行车要点1、形象鲜明 (大脑中生动的展现它的样子)2、放大:一点点放大它(后续的课程讲解经常用到放大这个方法)3、缩小:一点一点缩小它4、变多:一个变两个&#xff0c;两个变三个&a…

C++---数字三角形模型---传纸条(每日一道算法2023.2.26)

注意事项&#xff1a; 本题dp思路与 “线性dp–方格取数” 一致&#xff0c;下方思路仅证明为什么使用方格取数的思路是正确的。 题目&#xff1a; 小渊和小轩是好朋友也是同班同学&#xff0c;他们在一起总有谈不完的话题。 一次素质拓展活动中&#xff0c;班上同学安排坐成…

安卓开发调试使用 Charles抓包Https请求

1、Windows电脑安装证书Help->SSL Proxying -> Install Charles Root Certificate2、手机安装证书证书保存到电脑上.crt结尾的文件Help->SSL Proxying -> Save Charles Root Certificate2.复制到手机上 3.安装证书以红米手机为例打开手机设置-->密码与安全-->…

php宝塔搭建部署实战多模板cms管理系统源码

大家好啊&#xff0c;我是测评君&#xff0c;欢迎来到web测评。 本期给大家带来一套php开发的多模板cms管理系统源码。感兴趣的朋友可以自行下载学习。 技术架构 PHP7.0 nginx mysql5.7 JS CSS HTMLcnetos7以上 宝塔面板 文字搭建教程 下载源码&#xff0c;宝塔添加一…

在软件开发中如何将看板方法与 Scrum 集合使用?

什么是看板和 Scrum 的混合模式&#xff1f;适合在哪些场景使用&#xff1f;有哪些成功的案例可参考&#xff1f;本文将围绕以上问题展开。敏捷实践是一个团队过程&#xff0c;选择适合团队的敏捷框架时并没有什么技巧&#xff0c;无论您是使用看板方法、Scrum 还是两者的组合&…

【C++】vector的模拟实现(SGI版本)

吃不了自律的苦&#xff0c;又接受不了平庸的罪。想让自己变好&#xff0c;但又想舒服些。 你啊你……要么就不要去想&#xff0c;想了又不去做&#xff0c;犹犹豫豫&#xff0c;徘徊不前&#xff0c;患得患失… 文章目录一、四种构造函数1.vector的框架和无参构造2.构造函数调…