C++桌面应用开发+编译环境搭建指导

C++桌面应用开发+编译环境搭建指导

此帖目的:记录本人初次使用Visual Studio 2022(以下简称VS)IDE软件进行Windows桌面应用开发的环境搭建过程,以期对具有相同情况、初次使用和搭建VS开发编译环境进行C++开发的小白程序员提供参考作用。

1.下载VS IDE Installer

官网:https://visualstudio.microsoft.com/zh-hans/?frm=msidevs.net&tg=78UM
一般各公司也会提供内部的软件下载通道,笔者就是通过公司内部的软件下载平台上下载的,建议下载VS 2022 专业版。

VS IDE软件是通过Installer进行下载安装的,需要先下载Installer,之后可以在Installer安装界面选择欲安装的组件等进行真正的下载安装。

VS IDE软件具有企业版、专业版之分,都需要使用者购买、申请软件License对软件激活后才能长期使用,否则只能一个月试用。

2.使用VS IDE Installer勾选安装组件

使用Installer下载安装VS IDE时,勾选:
工作负荷->使用C++的桌面开发,在页面右方的“安装详细信息”中增加勾选“Windows 11 SDK”、“适用于最新v143生成工具的C++ MFC”、“适用于v143生成工具的C++ 模块”、“对v143生成工具的C++/CLI支持”。

其他的组件、语言包等按需勾选下载安装即可,此处不作统一要求。

安装位置保持默认即可,一般默认安装位置为:C:\Program Files\Microsoft Visual Studio\2022\Professional

所有安装组件确认完毕,点击右下角安装进行下载安装,安装完毕将会自动启动VS IDE,启动后可以选择一个月试用或者试用License激活。

3.配置环境变量和注册表

(非必须项,如果编译环境工作不正常时可以作为一种解决问题的尝试手段)

配置环境变量:配置下面两个路径到系统环境变量path中
C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.39.33519\bin\Hostx64\x64
C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.39.33519\bin\Hostx64\x86

配置注册表:配置如下注册表信息
注册表位置:计算机\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\SxS\VS7
注册表名称:17.0
类型:REG_SZ
数据:C:\Program Files\Microsoft Visual Studio\2022\Professional

4.验证VS 2022编译环境搭建是否成功

在系统cmd窗口中执行:cmake --help,查看系统默认的C++生成器是否默认变成了“VS 17 2022”。

5.使用cmake指令启动项目构建

假设项目代码是通过cmake工具构建的,通过如下指令启动项目构建:
cmake -S path/to/CMakeList -DCMAKE_SYSTEM_NAME=Windows -G “Visual Studio 17 2022” -A x64 -B ./outputs

构建成功后,将会在outputs目录下生成.sln项目文件,可以通过VS IDE打开该文件,整个项目工程将会全部自动加载到VS IDE。

6.使用VS IDE启动单模块、项目整体构建

双击.sln文件打开项目后,可以看到“解决方案资源管理器”窗口,该窗口显示的加载进来的该项目的所有子模块的工程。

启动项目整体构建:右键点击该窗口最上面的“解决方案”->生成解决方案,启动项目整体构建;
启动单模块构建:右键点击某子模块->生成,启动单模块构建。

构建过程中的编译提示信息或者报错信息将在下方的“错误列表”、“输出”窗口中展示。

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

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

相关文章

鸿蒙将与安卓应用形成“硬分叉”,多家平台急聘鸿蒙开发员

最近,网友注意到,多家企业公布了鸿蒙系统有关的岗位招聘。 11 月 8 日,美团发布了鸿蒙高级工程师、鸿蒙基建工程师等多个鸿蒙开发相关岗位。主要开发美团鸿蒙App、大众点评鸿蒙App。 根据脉脉平台,美团鸿蒙基建工程师岗位给出的…

C++ 二分模版 数的范围

给定一个按照升序排列的长度为 n 的整数数组,以及 q 个查询。 对于每个查询,返回一个元素 k 的起始位置和终止位置(位置从 0 开始计数)。 如果数组中不存在该元素,则返回 -1 -1。 输入格式 第一行包含整数 n 和 q &…

HBM可以解决冯诺伊曼架构的陷阱吗?

高带宽内存(High Bandwidth Memory, HBM)在一定程度上缓解了冯诺伊曼架构中处理器与主存之间的通信瓶颈问题,但并不能完全解决冯诺伊曼陷阱。 HBM是一种先进的3D堆叠式内存技术,它通过将多个DRAM芯片垂直堆叠在一起,并…

C++的std::vector

std::vector是C标准库中的一个序列容器,它封装了动态大小数组的行为。std::vector允许你在运行时动态地添加和删除元素,自动管理存储空间的分配和释放。由于其灵活性和易用性,std::vector在C程序中被广泛使用,特别是在需要存储一系…

JavaScript中手动实现Array.prototype.map方法

在前端开发中,我们经常需要对数组进行操作和处理。在JavaScript中,数组是常用的数据类型之一。而数组的map方法可以将一个数组中的每个元素都进行某种操作,并返回一个新的数组。今天,我们就来手动实现JavaScript中数组原型的map方…

Spring Bean 的生命周期了解么?

Spring Bean 的生命周期基本流程 一个Spring的Bean从出生到销毁的全过程就是他的整个生命周期, 整个生命周期可以大致分为3个大的阶段 : 创建 使用 销毁 还可以分为5个小步骤 : 实例化(Bean的创建) , 初始化赋值, 注册Destruction回调 , Bean的正常使用 以及 Bean的销毁 …

c++基础回顾之引用

定义 与指针相似的是,引用将存储位于内存中其他位置的对象的地址。 与指针不同的是,初始化之后的引用无法引用不同的对象或设置为 null。 声明方式 # 引用、指针和对象可以一起声明 int &ref, *ptr, k;引用保留对象的地址,但语法行为与对…

​ 安达发|APS排程软件的动态合并优化详解

在制造业中,为了提高生产效率、降低成本并满足客户需求,企业需要采用先进的人工智能算法APS系统。APS(高级计划与排程)系统作为一种强大的工具,可以帮助企业实现这一目标。本文将详细介绍APS排程软件的动态合并优化功能…

从零开始手写mmo游戏从框架到爆炸(十五)— 命令行客户端改造

导航:从零开始手写mmo游戏从框架到爆炸(零)—— 导航-CSDN博客 到现在,我们切实需要一个客户端来完整的进行英雄选择,选择地图,打怪等等功能。所以我们需要把之前极为简陋的客户端改造一下。 首先…

Python系列(16)—— string类型转float类型

Python中String类型转Float类型 方法1:使用float()函数 Python内置了float()函数,它可以直接将字符串转换为浮点数。如果字符串不能转换为浮点数,该函数将引发ValueError异常。 # 示例代码 string_value "3.14159" try:float_v…

继续教育山东第一医科大学临床医学试题及答案,分享几个实用搜题和学习工具 #媒体#学习方法#微信

在追求知识的道路上,合理使用学习工具是我们必不可少的一环。 1.难试题 这是一个网站 是一家专注于学生、家长、教师等作业搜题查找答案的网站。里面有大量的2023作业题、作业答案、作业资料及2023作业详细讲解。每天都会更新很多作业题 2.灵兔搜题 这是个微信公…

Rabbitmq的几种模式的总结

RabbitMQ是一个开源的消息中间件,它实现了AMQP(高级消息队列协议)并提供了丰富的消息传输模式。下面是RabbitMQ的几种常见消息传输模式的总结: 简单模式(Simple Mode):在简单模式下,…

力扣238和169

一:238. 除自身以外数组的乘积 1.1题目 1.2思路 1.3代码 //左右乘表 int* productExceptSelf(int* nums, int numsSize, int* returnSize) {int* answer (int*)malloc(numsSize*sizeof(int));int i 0;int left[numsSize],right[numsSize];left[0] 1;for(i 1;…

猫头虎分享已解决Bug || 脚本执行错误(Script Execution Failure):ScriptError, ExecutionFailure

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

IOT-Reaserch虚拟机配置

我用的是VirturalBox 主机与物理机之间的复制粘贴问题 VirtualBox Ubuntu无法安装增强功能以及无法复制粘贴踩坑记录_virtualbox安装增强功能没反应-CSDN博客 上面这篇博客帮助了我很多,摘取重要的重新提示一遍 运行虚拟机选择:设备->安装增强功能…

【字符串题目讲解】一文理解 Manacher Algoirth(马拉车算法)——以洛谷 P3805 和 P5446 为例

M a n a c h e r A l g o r i t h m \mathrm{Manacher\ Algorithm} Manacher Algorithm Manacher 算法主要是解决怎样的问题呢,其实是求解最长的回文串,但是只能找到长度为奇数的回文串,不过可以通过转化使得能够求解任意长度的回文串。 例…

使用智能电销机器人,拓客效果更佳!

现在很多的企业做销售都离不开电话营销,它是一种能够直接帮助企业获取更多利润的营销模式,目前被各大行业所采用。 znyx222 了解探讨 电话营销是一个压力很大的职业,新员工培养难度大、老员工又不好维护,会有情绪问题出现等&…

blasterswap明牌空投

空投要点 明牌空投,blaster生态第一个swap,应该不会寒酸交互简单,仅需3步,零gas费仅仅要求加密钱包在eth链有过交易需要有x和discord账号 blasterswap空投简介 BlasterSwap 是Blast生态里面第一个SWAP项目,近期启动…

git高级命令

取消上一次的commit命令: git reset --soft HEAD^ 查看提交记录: git log fq退出 回退指定的提交(创建新的分支来回退) git revert commit hash :wq退出 回退到指定的提交(会修改你的分支历史) git …

【嵌入式学习】QT-Day1-Qt基础

笔记 https://lingjun.life/wiki/EmbeddedNote/20QT 毛玻璃登录界面实现: