VS Code上,QT基于cmake,qmake的构建方法(非常详细)

VS Code上,QT基于cmake,qmake的构建方法

  • 1 前言
  • 2 QT基于cmake的构建方法
    • 2.1 VS Code关键插件安装
    • 2.2 系统环境变量配置
    • 2.3 VS Code中,环境变量配置
    • 2.4 Cmake新建一个新的Porject
  • 3 QT基于qmake的构建方法

1 前言

最近,由于认证了github的学生用户,想在VS Code上,将各类语言开发环境统一起来。而在VS Code上进行QT开发,在找了一圈CSDN上的博客后,感觉并不全面,跟着尝试还是会出各种各样的问题,因此,在走通cmake/qmake的QT环境配置后,这里予以记录,便于自己日后查询,也给大家一些参考,能够尽量减小消耗这种配置环境的无用功时间。
首先,关于软件的安装,主要包括VS Code以及QT,感觉能够有需求通过VS Code进行QT开发,这两个软件的安装一定是没有任何问题的,因此,这里不再赘述安装过程了,直接进入正题——VS Code上,QT基于cmake,qmake的构建方法。

2 QT基于cmake的构建方法

2.1 VS Code关键插件安装

在正式配置环境之前,在VS Code上,需要提前完成几个关键插件的安装,它们分别是
(1) CMake,CMake Tools: 一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。
Cmake
(2) Qt tools,QT Configure: VS Code中实现QT开发的主要工具,并直接提供开发过程的关键指令。包括QtConfigure : New Project等,后续会详细介绍。

2.2 系统环境变量配置

事实上,环境变量配置不正确,是运行过程出现问题的主要原因,其中,环境变量的顺序,也对环境能否配置成功起决定作用,因此,有时候出现问题,可以调整环境变量,再重新试一下。注意,我这边后续将采用MSVC2019_64进行开发,因此,若是采用别的编译器开发,请结合自己的具体情况合理设置。 我的环境变量配置结果如下:
在这里插入图片描述

2.3 VS Code中,环境变量配置

在完成系统环境变量配置后,还需在VS Code中,完成环境变量的配置,主要包括设置Cmake Tools、Mingw、QT、QT Kit以及Vcvarsall等的安装路径。这里,给出我的设置结果,具体如下图所示(同上,此处基于MSVC2019_64进行设置,可结合自己的编译器版本,合理调整):
在这里插入图片描述另外,Cmake Tools的路径设置如下:
在这里插入图片描述注意,这里设置的Cmake Tools为QT路径下的Cmake。另外,QT的环境变量,也可以直接在UI界面上设计,具体如下图所示:
在这里插入图片描述当完成到这一步,恭喜你,已经完成了cmake配置QT的环境配置全过程,接下来,就是新建具体的project了。

2.4 Cmake新建一个新的Porject

这里直接上图,演示新建过程:
(1) 快捷键CTRL+SHIFT+P,快速启动命令窗口:
在这里插入图片描述
(2)点击QtConfigure:New Project,新建QT项目,项目名称为”test“:
在这里插入图片描述
(3)选择QT套件,这里我选择MSVC_2019:
在这里插入图片描述
(4)这里选择CMake工具:
在这里插入图片描述
(5)是否需要生成.ui文件,这里选择Yes:
在这里插入图片描述
完成至这一步后,生成完整工程如下图所示:
在这里插入图片描述(6) CMake:Configure配置环境
在这里插入图片描述
这里,按照自己的Kit版本,选择对应的编译器与环境,如下图所示。这里,我选择的编译器及其环境为2019 Release - x86_amd64:
在这里插入图片描述
然后,在输出中将看到CMake过程的日志信息(蓝框),完成后,在项目目录文件中,将会生成build文件夹(红框),并在文件下,生成一些关键文件,如下图所示:
在这里插入图片描述至此完成整个项目的环境配置与项目建立,按快捷键F5,即可编译项目,并生成界面结果,如如下图所示,至此,完成在VS Code中,Cmake新建一个新的Porject项目的全过程。
在这里插入图片描述

3 QT基于qmake的构建方法

事实上,基于cmake的qt构建过程,相对来讲还是比较简单的,因为cmake毕竟还是属于VS Code进行QT开发的主流方式。但是,因为我之前很多项目还是基于qmake开发的,因此,也同样对qmake构建QT的过程进行了探索,也供有需要的人参考。关于环境配置问题,与前述完全一致,在项目建立过程中,选择qmake即可。项目建立完成后,如下图所示。
在这里插入图片描述可以看到,qmake建立的项目文件,要比cmake建立的项目文件更加多一些,主要多了c_cpp_properties.json与tasks.json,以及scripts路径下的build_debug.bat与build_release.bat,这里请注意,这四个文件非常关键,后续如果想要将自己已经基于qmake建立起来的 QT项目迁移到VS Code上进行开发,上述这几个文件都是必不可少的,同时,需要将上述文件中对应的一些文件名字进行修改。 这里我们同样通过快捷键F5编译运行项目,但出现报错如下图所示:

Unable to find dependent libraries of C:\ProgramData\Anaconda3\Library\bin\Qt5Widgetsd.dll :Cannot open 'C:/ProgramData/Anaconda3/Library/bin/Qt5Widgetsd.dll':

分析报错原因可以发现,是因为项目去Anaconda3下寻找对应动态库了,在没有找到后,自然就报错了。这里,我首先通过调整环境变量,将Anaconda3的环境变量下调至QT之下,但是仍没有解决问题,考虑可能因为其他环境变量影响的,因此,更快捷的方式是,直接将该路径下的Anaconda3改名Anaconda31即可,再运行程序,成功!
在这里插入图片描述至此,即完成了VS Code上,QT基于Cmake,Qmake的环境配置与项目建立全过程,接下来,就可以酷酷地在VS Code上,开始QT的开发工作啦!!!

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

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

相关文章

代码贴--动态顺序表--数据结构

本博客将记录操作系统中的动态顺序表的相关代码 头文件&#xff08;SeList.h&#xff09; #pragma once #include<stdio.h> #include<string.h> #include<stdlib.h> #include<assert.h> typedef int SQDataType; //动态顺序表typedef struct SeqList…

2024年Vue3 面试题小总结

Vue3 面试题小总结 1. OptionsAPI 与 CompositionAPI 的区别&#xff1f; OptionsAPI&#xff1a; 选项式API&#xff0c;通过定义data、computed、watch、method等属性与方法&#xff0c;共同处理页面逻辑&#xff1b;缺点&#xff1a; 当组件变得复杂的时候&#xff0c;导致…

websocket 使用示例

websocket 使用示例 前言html中使用vue3中使用1、安装websocket依赖2、代码 vue2中使用1、安装websocket依赖2、代码 前言 即时通讯webSocket 的使用 html中使用 以下是一个简单的 HTML 页面示例&#xff0c;它连接到 WebSocket 服务器并包含一个文本框、一个发送按钮以及 …

C++初阶:类与对象(尾篇)

目录 1. 构造函数与初始化列表1.1 对象的创建与构造函数的初始化1.2 初始化列表及构造函数存在的意义1.3 explicit关键字与构造函数的类型转换 2. static成员变量与static成员函数2.1 static成员变量2.2 static成员函数 3. 日期类流插入操作符的重载与友元3.1 友元3.2 友元函数…

基于openresty构建运维工具链实践

本文字数&#xff1a;4591字 预计阅读时间&#xff1a;25 01 导读 如今OpenResty已广泛被各个互联网公司在实际生产环境中应用&#xff0c;在保留Nginx高并发、高稳定等特性基础上&#xff0c;通过嵌入Lua来提升在负载均衡层的开发效率并保证其高性能。本文主要介绍接口鉴权、流…

前端基础——HTML傻瓜式入门(1)

该文章Github地址&#xff1a;https://github.com/AntonyCheng/html-notes 在此介绍一下作者开源的SpringBoot项目初始化模板&#xff08;Github仓库地址&#xff1a;https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址&#xff1a;https://blog.c…

ThingsBoard Edge 安装部署

文章目录 一、概述1.官方文档2.部署说明3.安装准备3.1. 克隆服务器3.2.安装 Docker3.3.安装 Java 113.4.安装 PostgreSQL3.5.下载安装包 二、安装部署1.创建 Edge 实例2.创建数据库3.Edge 服务安装3.1.安装服务3.2.配置 Edge3.3.运行安装脚本3.4.重新启动服务 4.访问 Edge5.故障…

html canvas怎么在图片上面加文字

在HTML canvas中&#xff0c;要让文字显示在图片上方&#xff0c;你需要按照以下步骤操作&#xff1a; 首先&#xff0c;使用drawImage()方法将图片绘制到canvas上。 然后&#xff0c;使用fillText()或strokeText()方法在canvas上绘制文本。 以下是一个简单的示例代码&#…

自动驾驶---Motion Planning之构建SLT Driving Corridor

1 背景 在上篇博客《自动驾驶---Motion Planning之Speed Boundary》中,主要介绍了Apollo中Speed Boundary的一些内容,可以构造ST图得到边界信息,最后结合粗糙的速度曲线和路径曲线,即可使用优化的方法求解得到最终的轨迹信息(s,s,s,l,l,l)。 本篇博客笔者主要介绍近…

系统重构后,对项目定制开发的兼容性问题

公司自实施产品线战略以来&#xff0c;基本推翻了全部旧有业务模块。后续以标准产品二次开发的模式进行项目开发。但在涉及到一些旧有系统二期、三期升级改造过程中。不可避免的需要解决旧有系统的客户定制化开发兼容性问题。也就是旧有系统定制开发的模块不能丢弃。重新开发从…

【SQL Server】实验八 综合设计

1 实验目的 了解和掌握数据库设计的有关理论和方法。可以灵活运用数据库设计方法设计一个中小型规模的数据库。 2 实验内容 2.1 数据库概念模型设计 进行需求分析。设计数据库概念模型&#xff0c;画出E-R图。 2.2 数据库逻辑模型设计 根据数据库概念模型设计数据库的逻…

现货大宗商品交易所软件的功能介绍有演示版

现货大宗商品交易所软件是专为大宗商品交易设计的系统平台&#xff0c;其功能涵盖了交易的各个环节&#xff0c;旨在提高交易效率、降低交易成本并促进市场规范化。以下是现货大宗商品交易所软件的主要功能&#xff1a; 用户管理模块&#xff1a; 注册与登录&#xff1a;为新…

量化系统QTYX使用攻略|“盘中战法”篇——监测个股盘口异动,机器人远程提醒(更新2.8.0)...

QTYX简介‍‍‍ 股票量化交易系统QTYX是一个即可以用于学习&#xff0c;也可以用于实战炒股分析的系统。 分享QTYX系统目的是提供给大家一个搭建量化系统的模版&#xff0c;最终帮助大家搭建属于自己的系统。因此我们提供源码&#xff0c;可以根据自己的风格二次开发。 关于QTY…

Javascript抓取京东、淘宝商品数据(商品采集商品详情图片抓取)

之前用的方法&#xff1a; let temp []var lists $(#J_goodsList li.gl-item)$.each(lists,function(idx,item){ temp.push({ id:$(item).data(sku), goods_img:$(item).find(img).attr(src), goods_name:$(item).find(.p-name em).text(), market_price:$(item).fi…

洗眼镜用什么超声波清洗机洗比较好?四款黑马产品集合力荐

对于眼镜佩戴者而言&#xff0c;保持眼镜的清洁不仅关系到舒适的佩戴体验&#xff0c;更直接影响到视觉的清晰度。然而&#xff0c;传统的清洗方法往往难以彻底去除镜片上的污渍、油脂以及细菌&#xff0c;尤其是眼镜的角落和细小缝隙&#xff0c;更是清洁的死角。随着科技的发…

HDS-NAS分配资源并挂载win和linux

1、首先创建系统文件。 选择nas存储池 2、根据自己的需求创建相应的挂载方式 3、window配置 配置成功 最后即可在window系统网络位置映射网络即可&#xff0c; 格式为\\123.3.4.5\test 注&#xff1a;IP地址 4、liunx挂载方式 创建完成之后即可挂载&#xff0c;注意目的主…

数据结构——动态顺序表

数据结构的动态顺序表有以下几个操作&#xff1a;创建&#xff0c;销毁&#xff0c;初始化&#xff0c;增删查改和打印以及内存空间不够时的扩容 本文的宏定义&#xff1a; #define SeqTypeData int 1.动态顺序表的创建 typedef struct SeqListInit{//动态顺序表的创建SeqT…

面试经典-MySQL篇

一、MySQL组成 MySQL数据库的连接池&#xff1a;由一个线程来监听一个连接上请求以及读取请求数据&#xff0c;解析出来一条我们发送过去的SQL语句SQL接口&#xff1a;负责处理接收到的SQL语句查询解析器&#xff1a;让MySQL能看懂SQL语句查询优化器&#xff1a;选择最优的查询…

springboot爱看漫画小程序的设计与实现

摘 要 相比于以前的传统手工管理方式&#xff0c;智能化的管理方式可以大幅降低爱看漫画的运营人员成本&#xff0c;实现了爱看漫画的标准化、制度化、程序化的管理&#xff0c;有效地防止了爱看漫画的随意管理&#xff0c;提高了信息的处理速度和精确度&#xff0c;能够及时、…

双指针算法_复写零

题目&#xff1a; 给一个固定长度的数组arr&#xff0c;将数组中出现的每一个0都复写一遍&#xff0c;并且将其余元素都往右移动 且不要再超过数组长度的位置写入元素&#xff0c;在数组上直接修改 示例&#xff1a; 双数组模拟操作&#xff1a; 从示例来看&#xff0c;因为…