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.hqwc.cn/news/542943.html

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

相关文章

基于springboot的高校化学试剂仓储管理系统

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式 🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 &…

【大模型系列】问答理解定位(Qwen-VL/Llama2/GPT)

文章目录 1 Qwen-VL(2023, Alibaba)1.1 网络结构1.2 模型训练 2 Llama2(2023, Meta)2.1 网络结构2.1.1 MHA/GQA/MQA2.1.2 RoPE(Rotary Position Embedding, 旋转式位置编码)2.1.3 RMSNorm 2.2 推理2.2.1 集束搜索(beam search)2.2.2 RoPE外推 3 GPT系列(OpenAI) 1 Qwen-VL(2023…

SketchUp Pro 2023 for Mac/Win:重塑设计,引领未来

在数字化浪潮席卷全球的今天,设计行业也迎来了前所未有的变革。SketchUp Pro 2023,这款专为设计师打造的草图大师软件,正以其强大的功能和卓越的性能,引领着设计界的新潮流。 SketchUp Pro 2023不仅继承了前代产品的优秀基因&…

CSS3技巧38:3D 翻转数字效果

博主其它CSS3 3D的文章: CSS3干货4:CSS中3D运用_css 3d-CSDN博客 CSS3干货5:CSS中3D运用-2_中3d-2-CSDN博客 CSS3干货6:CSS中3D运用-3_css3d 使用-CSDN博客 最近工作上烦心的事情太多,只有周末才能让我冷静一下 cod…

【蓝桥杯单片机】十四届省赛“重难点”解析(附源码)

【蓝桥杯单片机】十四届省赛“重难点”解析 一、题目难点解析二、易出错点提示三、完整代码链接 笔记包括:①题目难点解析、②易出错点提示、③完整代码链接 注:本文提供的所有代码都是使用第十四届竞赛包完成 系列文章链接: 一、题目难点解析…

【数据结构和算法初阶(C语言)】队列实操(概念实现+oj题目栈和队列的双向实现以及循环链表难点题目详解!)

目录 1. 队列的概念及结构 2.队列结构存在的意义应用 3.队列实现的结构选择 4.队列实现 5.队列对数据的处理 5.1队列初始化 5.2队尾入数据 5.3队头出数据 5.4获取队列尾部元素 5.5获取队列头部元素 5.6获取队列中元素个数 5.7检测队列是否为空 5.8销毁队列 6.循环队列补充 7.使…

springboot宝鸡文理学院学生成绩动态追踪系统

摘 要 研究开发宝鸡文理学院学生成绩动态追踪系统的目的是让使用者可以更方便的将人、设备和场景更立体的连接在一起。能让用户以更科幻的方式使用产品,体验高科技时代带给人们的方便,同时也能让用户体会到与以往常规产品不同的体验风格。 与安卓&#…

Linux异步通知实验:应用程序对异步通知的处理

一. 简介 前面文章学习了 应用程序对异步通知的处理方法,另一篇文章实现了Linux驱动对异步通知的处理: Linux应用程序对异步通知的处理-CSDN博客 Linux异步通知实验:驱动中异步通知的处理-CSDN博客 本文继续Linux异步通知实验&#xff0c…

AI视频矩阵混剪系统|罐头鱼AI批量混剪定时发送

AI视频矩阵混剪系统:智能创作与发布的完美结合 随着社交媒体平台的快速发展,视频已成为各行业推广和传播的热门方式。然而,对于许多人来说,制作高质量的视频仍然是一项挑战。Q:290615413但现在,有了AI视频矩阵混剪系统…

字节面试: Mysql为什么用B+树,不用跳表?

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中,最近有小伙伴拿到了一线互联网企业如得物、阿里、滴滴、极兔、有赞、希音、百度、网易、美团、蚂蚁、得物的面试资格,遇到很多很重要的相关面试题: Mysql用B树,不用跳表&…

【上海大学计算机组成原理实验报告】一、数据传送实验

一、实验目的 了解实验仪器数据总线的控制方式。掌握数据传送的基本原理。掌握各寄存器的结构、工作原理及其控制方法。 二、实验原理 根据实验指导书的相关内容,数据输入到寄存器的过程是先通过指令选择源和目标,再通过数据总线来传送数据&#xff0…

【ARM】UBL本地服务器离线激活license

【更多软件使用问题请点击亿道电子官方网站查询】 1、 文档目标 UBL本地服务器离线激活license。 2、 问题场景 解决有用户外出时激活 license。 3、软硬件环境 1)、软件版本:MDK5.39 2)、电脑环境:Ubuntu 20.04 LTS 3&…