004-Windows下开发环境搭建

news2024/11/21 2:35:02
头图

Windows下开发环境搭建

文章目录

  • Windows下开发环境搭建
    • 项目介绍
    • 版本控制工具
      • Git 与 SVN
      • Window下安装Git
    • Qt 开发工具
      • 静态编译Qt环境安装
    • 串口模拟器
    • 比较工具
    • SQLite 数据库查看小工具
    • 预告

关键字: QtQml开发环境WindowsC++

项目介绍

欢迎来到我们的 QML & C++ 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C++ 的强大功能,旨在开发出色的用户界面和高性能的后端逻辑。

在项目中,我们利用 QML 的声明式语法和可视化设计能力创建出现代化的用户界面。通过直观的编码和可重用的组件,我们能够迅速开发出丰富多样的界面效果和动画效果。同时,我们利用 QML 强大的集成能力,轻松将 C++ 的底层逻辑和数据模型集成到前端界面中。

在后端方面,我们使用 C++ 编写高性能的算法、数据处理和计算逻辑。C++ 是一种强大的编程语言,能够提供卓越的性能和可扩展性。我们的团队致力于优化代码,减少资源消耗,以确保我们的项目在各种平台和设备上都能够高效运行。

无论您是对 QML 和 C++ 开发感兴趣,还是需要我们为您构建复杂的用户界面和后端逻辑,我们都随时准备为您提供支持。请随时联系我们,让我们一同打造现代化、高性能的 QML & C++ 项目!

重要说明☝

☀该专栏更新到第三代软件开发时将转为收费专栏

版本控制工具

在软件开发中,版本控制是非常重要的。它是一种用于跟踪和管理代码变更的系统,可以帮助开发团队协同工作、保证代码质量,并提供许多其他好处。

以下是版本控制的重要性:

  1. 代码管理:版本控制系统(VCS)允许开发人员跟踪和管理代码的各个版本。团队成员可以同时为同一个项目工作,每个人都可以独立地进行修改和提交代码。如果出现问题或错误,可以轻松地回滚到之前的版本或修复错误。

  2. 团队协作:版本控制使得多个开发者能够协同工作。不同开发人员可以并行工作在不同的功能分支上,然后将它们合并到主分支中。这样可以避免冲突和覆盖对方的工作。

  3. 版本追踪:版本控制系统记录了每次代码提交的详细信息,包括谁做出了更改、何时做出的更改以及更改的内容。这对于项目的历史追踪和代码审查非常有用。它还提供了一个可追溯的日志,可以帮助定位引入问题或错误的具体更改。

  4. 错误恢复与回滚:当出现问题时,版本控制允许开发人员轻松回滚到之前的稳定状态。如果新功能导致了严重的错误或不稳定性,可以快速恢复到上一个可用版本,并在修复问题之后重新发布。

  5. 分支管理:版本控制系统还提供了分支管理功能。这意味着可以创建不同的代码分支来同时进行多个工作流程,例如开发新功能、修复错误或实验性开发。每个分支都可以独立进行修改和测试,然后再合并到主分支中。

  6. 团队沟通和协调:通过版本控制系统,团队成员可以更好地进行沟通和协调工作。他们可以看到彼此的更改和注释,并且容易了解项目的进展情况。

  7. 备份和恢复:版本控制系统本身就是一种备份机制,它可以确保代码的多个副本存在于不同的位置。这样,在硬件故障、数据丢失或其他灾难情况下,可以轻松地恢复代码。

总的来说,版本控制对于软件开发团队来说是至关重要的。它提供了代码管理、团队协作、错误恢复、分支管理等多个方面的好处,能够提高开发效率、代码质量和团队协同能力。

Git 与 SVN

Git和SVN都是版本控制系统,但它们在设计和功能上存在一些重要的区别。

  1. 分布式 vs 集中式:Git是分布式版本控制系统,每个开发者都有完整的代码仓库副本。这意味着开发者可以在本地进行大部分操作,包括提交、分支创建和合并等,而不需要依赖于中央服务器。相比之下,SVN是集中式版本控制系统,开发者需要与集中服务器进行交互,提交和获取代码变更。因此,在没有网络连接时,Git具有更好的适应性和独立性。

  2. 版本控制方式:Git使用快照(snapshots)的方式来记录和跟踪文件的变化,而SVN使用差异(differences)的方式。Git的快照方法更加高效,可以更快地执行常见操作,如提交和回滚。SVN的差异方式需要从服务器上获取完整的差异信息,对于大型项目可能会导致较慢的操作速度。

  3. 分支和合并:Git在分支和合并方面非常强大和灵活。开发者可以轻松地创建和切换分支,进行并行开发,并在需要时将分支合并到主线上。Git的分支管理是其核心特点之一,使得团队协作更加容易。相比之下,SVN的分支和合并操作较为复杂和受限,需要更多的手动操作。

  4. 历史追踪和日志:Git记录每个提交的完整快照,包括作者、日期、注释等信息,可以轻松追溯代码的历史。它还提供了强大的分支查看、可视化工具和详细的提交日志。SVN也提供了版本历史和日志,但在这方面相对简化。

总的来说,Git逐渐成为最流行和广泛使用的版本控制系统,因其分布式设计、高效性能、灵活的分支和合并功能以及强大的历史追踪和日志功能而备受开发者青睐。SVN仍然适用于一些特定的场景,特别是在传统集中式开发环境中,或者项目已经使用了SVN作为版本控制工具。

这里可以更具自身喜好以及公司习惯和项目特性选着合适的版本控制工具,我们团队目前使用了Git 作为软件版本工具,目前已经影响到了电路部门与我们一起使用Git来作为软件版本控制工具。

Window下安装Git

嘿嘿,这个好像没有什么好说的哈,如果喜欢使用指令方式,可以直接安装官方的Git软件,喜欢图形界面操作的话,Windows可以选着的就更多了,我们使用了 GitHub Desktop,这里满足需求即可,同时版本控制也是一项软实力,现在去一家公司写代码,如果你说你不会版本控制工具,那是不行的。

Qt 开发工具

如果我们需要与VS 结合开发,那么建议要线安装对应版本的VS,完了再安装Qt,因为我们是准备后期转Linux平台的,所以这里我们就直接使用MinGW64套件了,不过在WIndows平台下,我们会“静态”编译测试了,这里为什么要加引号,因为静态好像要确保你买了Qt。我们静态编译主要是为了测试性能,所以暂时嘿嘿嘿。

静态编译Qt环境安装

要是我把原来的文章在复制一份,我把大家给我寄锤子,所以这里还是直接上连接

https://dreamlife.blog.csdn.net/article/details/125096281

image-20230711225834303

串口模拟器

前面几篇说了,目前我们的电路板还可能是沙子了,所以这里为了调试方便,需要用到虚拟串口,这里就推荐VSPD,截图如下,崩下载错了。

image-20230703222252846

比较工具

这个目前我接触的也就是BCompare了,截图如下

image-20230703222409659

SQLite 数据库查看小工具

因为项目涉及到了数据的保存,而且计划程序运行日志也记录到数据库中,这里前期就需要使用到数据库小工具了,两个目的。

  1. 验证软件中的SQL语句知否可以正常执行,在我们程序为按照预期执行是,可以将SQL语句打印,复制到小工具中执行测试,如果SQL语句存在问题,小工具可以快速协助我们找到问题点
  2. 后期我们数据量很大,可能需要使用到MATLAB来协助分析数据,这就需要就数据导出到到cvs,方便分析。

这里推荐两个小工具SQLiteSpysqlitestudio

image-20230703223331322

sqlitestudio好像不允许有中文路径

image-20230703223509093

那么咋Windows平台下基本用到的工具就这些了。有了这些,我们就可以开始干活了。

预告

前面也说了,我们后期是准备转Linux的平台的,所以和面还会有Linux 的环境搭建。


博客签名2021

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

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

相关文章

Elastic Universal Profiling™ 是一种连续分析解决方案,现已正式上市

作者:Israel Ogbole, Stephanie Boomsma 在软件无处不在且影响深远的世界中,效率的重要性不仅仅局限于业务范围。 高效的软件不仅有利于企业,而且有利于企业。 这对全球也有好处。 通过将计算效率作为核心目标,并为专业人员提供正…

WebGL光照介绍——平行光、环境光下的漫反射

目录 光照原理 光源类型 平行光 点光源 环境光 反射类型 漫反射 漫反射光颜色 计算公式 环境反射 环境反射光颜色 表面的反射光颜色(漫反射和环境反射同时存在时)计算公式 平行光下的漫反射 根据光线和法线方向计算入射角θ(以便…

数据结构--哈希表,哈希函数(或者散列表、散列函数)

目录 哈希表的定义 处理冲突的方法--拉链法 散列查找 常见的散列函数(构造哈希函数) 除留余数法 直接定址法 数字分析法 平方取中法 处理冲突的方法--开放定址法 (1)线性探测法: (2&#xff09…

笔记:Android 应用启动流程

1.点击图标,启动app 点击图标,实际是封装了一个 Intent 然后调用了 startActivity 方法 ComponentName componentName new ComponentName("包名", "activity 名称"); Intent intent new Intent(Intent.ACTION_MAIN); intent.set…

【问题处理】GIT合并解决冲突后,导致其他人代码遗失的排查

GIT合并解决冲突后,导致其他人代码遗失的排查 项目场景问题描述分析与处理:1. 警告分析2. 文件分析3. 问题关键4. 验证 解决策略总结 📕作者简介:战斧,从事金融IT行业,有着多年一线开发、架构经验&#xff…

【Nacos】Nacos服务注册服务端源码分析(一)

上篇简单看了下Nacos客户端在服务注册时做了什么。 本篇开始分析Nacos在服务注册时,服务端的相关逻辑。 建议先阅读这篇文章:支持 gRPC 长链接,深度解读 Nacos 2.0 架构设计及新模型 回顾一下,上篇我们看了Nacos在服务注册时&a…

四种常用的自动化测试框架

一直想仔细研究框架,写个流水账似的测试程序不难,写个低维护成本的测试框架就很难了,所以研究多种测试框架还是很有必要的,知道孰优孰劣,才能在开始编写框架的时候打好基础,今天读到了KiKi Zhao的翻译文章&…

reverse_iterator 逆序迭代器

在上一篇 C迭代器 iterator(与逆序迭代器) 中,我们看到了迭代器的基本用法。 现在我们看看一个奇怪的现象 意料之外的减法运算 无符号数的 0 减 1 变成了什么? ?已知 size_t 一般为 unsigned long long 类型。 #…

区块链(4):区块链去中心化

1 区块链白皮书中的公有链,私有链,联盟链概念介绍 区块链系统根据应用场景和设计体系的不同,一般分为公有链、联盟 链和专有链(私有链)。其中: 公有链的各个节点可以自由加入和退出网络,并参加链上数据的读 写,运行时…

SpringBoot+MyBatis flex实现简单增删改查

一&#xff1a;创建SpringBoot项目 SpringBoot版本选择2.7.15 勾选相关的选项&#xff0c;并点击Create 项目创建完成 二.pom文件添加相关的依赖 <dependencies><dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starte…

排序——直接插入排序折半插入排序

文章目录 前言一、排序的基本概念1. 排序的定义2. 排序的分类1) 稳定排序2) 不稳定排序 二、插入排序1. 直接插入排序1&#xff09;直接插入排序算法分析 2. 直接插入排序代码3. 直接插入排序时间复杂度4. 折半插入排序5. 折半插入排序代码 总结 前言 排序的基本概念数据结构稳…

从数字化到智能化再到智慧化,智慧公厕让城市基础配套更“聪明”

随着科技的迅猛发展&#xff0c;城市生活方式与配置设施的方方面&#xff0c;面也在不断的改变和升级。智慧公厕作为城市基础配套设施的一部分&#xff0c;从数字化到智能化再到智慧化&#xff0c;正逐渐展现出其独特的魅力和优势。实现了公共厕所建设、使用与管理方式的全面变…

【AI】机器学习——支持向量机(非线性及分析)

5. 支持向量机(线性SVM) 文章目录 5.4 非线性可分SVM5.4.1 非线性可分问题处理思路核技巧核函数特点 核函数作用于SVM 5.4.2 正定核函数由 K ( x , z ) K(x,z) K(x,z) 构造 H \mathcal{H} H 空间步骤 常用核函数 5.5 SVM参数求解算法5.6 SVM与线性模型关系 5.4 非线性可分SVM …

奇偶数之和

任务描述 本关任务&#xff1a;请编一个函数fun(int *a,int n,int *odd,int *even)&#xff0c;函数的功能是分别求出数组a中所有奇数之和以及所有偶数之和。形参n给出数组中数据的个数&#xff1b;利用指针odd返回奇数之和&#xff0c;利用指针even返回偶数之和。 例如&#…

UE5_OpenCV库的加载方式

UE5使用opencv库要在系统中添加opencv的环境变量 在项目文件夹下新建ThirdParty,将OpenCV中的bin、opencv文件夹copy到ThirdParty中 打开项目,找到source目录下的build.cs文件 修改build.cs内容,添加头文件路径,dll路径,lib路径 // Copyright Epic Games, Inc. All Right…

leetcode21

题目&#xff1a; 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4]示例 2&#xff1a; 输入&#xff1a;l1 [], l2 [] 输…

腾讯mini项目-【指标监控服务重构】2023-07-21

今日已办 当在Docker容器中运行程序时&#xff0c;可能会遇到使用os.Getpid()函数时出现异常的情况。这是因为Docker容器中的进程隔离机制与宿主机器不同&#xff0c;容器内部的进程可能无法访问宿主机器的进程信息。 要解决这个问题&#xff0c;可以尝试&#xff1a; 使用do…

Linux磁盘管理:最佳实践

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

每日一博 - 防范彩虹表攻击_数据库存储密码的秘密武器

文章目录 概述图解小结 概述 加盐&#xff08;salting&#xff09;是一种安全存储数据库中密码并验证其真实性的常见方法&#xff0c;它的主要目的是增加密码的安全性&#xff0c;以防止常见的密码攻击&#xff0c;如彩虹表攻击。以下是关于如何使用加盐技术的简要介绍&#x…

计算机二级python基础题刷题笔记(三)

hello&#xff0c;看到三的小伙伴们你们已经超过30%的对手啦&#xff01;接下来也要加油呀 代码没有最好&#xff0c;只有更好&#xff0c;如果你有更好的想法答案欢迎在评论区里发表呀 1、将程序里定义好的std列表里的姓名和成绩与已经定义好的模板拼成一段话&#xff0c;显示…