VSCode 配置 C/C++ 开发环境( MSVC )

news2024/11/18 12:28:33

0.绿色版本

  • 下载地址:https://www.aliyundrive.com/s/DMK13owZSrC

  • 绿色版本采用 VSCode User 1.7.4.2 X64 版本。

  • 绿色便携版本采用的生成工具来自 Visual C++ 2010 版本提供的 32 位工具链。

  • Win 7 Win10 Win 11 可以正常运行。

  • 使用方法,下载文件后,进行解压,以管理员身份运行 VCVars.bat 文件后,再运行 ShortCut.bat 这样就会生成一个桌面快捷方式。

  • 用 VSCode 打开所给的 Code 文件夹,可以迅速编译运行示例。具体可以参照手动配置里的 1.4 步骤。

  • 下面给出绿色版压缩包文件结构图:

VSCode-win32-x64-1.74.2
├ Code <folder>
│
├ VCompiler <folder>
│ ├ include <folder>
│ │ ├ easyx.h
│ │ └ graphics.h
│ ├ bin <folder>
│ │
│ └ Lib <folder>
├ ShortCut.bat ├ EasyXa.lib
├ VCVars .bat └ EasyXw.lib
└ 其他文件

1.手动配置

1.1 插件和环境变量的配置

  • 下载 VSCode,从 https://code.visualstudio.com/ 下载。这里选用目前最新版本:1.7.4.2 X64 User 版本。

  • 安装后,点击左侧第 5 个按钮如下图所示,这里使用中文,喜欢英文的可以跳过此步,此处以中文为例。

  • 下载 VC 生成工具,此处以 VC 2010 中提取出来的 X86 位生成工具链为例,已内置 EasyX 库,版本 20220901

  • 下载地址:https://www.aliyundrive.com/s/S7J5ajSYB4j 然后自行解压,此处以解压到 D 盘为例。(想要更新的 VC2022 可以参照第三节 )

  • 设置生成工具的环境变量,不懂如何设置环境变量可以参考https://jingyan.baidu.com/article/f0e83a259121f963e4910132.html 设置完毕后如图所示:

  • 在 VSCode 中下载并安装 C/C++ 插件,然后重启 VSCode。

  • 按下 Ctrl+Shift+P 组合键,输入 C/C++:编辑配置(JSON) 项,如下图所示:

  • 左键点击后,将会进入 c_cpp_properties.json 的配置文件,这个文件的是配置 VSCode C++ 的智能感知,提供代码提示,错误提示等功能。清空里面的代码,输入如下代码:

{
    "configurations":[
        {
            "name":"Win32",
            "includePath":
            [
                "${workspaceFolder}/**"
            ],
            "defines":
            [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "cl.exe",
            "cStandard": "c99",
            "cppStandard": "c++11",
            "intelliSenseMode":"windows-msvc-x86"                    
        }
    ],
    "version":4
}

1.2 相应示例代码

  • 在 D 盘下创建一个文件夹 Code,并用 VSCode 打开,然后创建一个新文件 circle.cpp,在里面输入一个简单的画圆代码,如下:

#include<graphics.h>#include<conio.h>intmain(){
	initgraph(640,480);
	circle(320,240,50);
	_getch();
	return0;}

1.3 任务和运行配置

  • 回到 circle.cpp 编辑页面,点击终端选项卡下的“配置任务“,会有一个选项 “C/C++:cl.exe“ 生成活动文件,如图所示:

  • 如果没有上述第一个选项,则选择第二个选项 “使用模板创建 tasks.json”,然后点击 “other ”。无论选择哪一个,都会进入到 task.json 的编辑页面,清空这个文件里面的代码,加入如下代码:

{
	"version": "2.0.0",
	"tasks":
	[
		{
			"type":"cppbuild",
			"label":"C/C++:Debug",
			"command":"cl.exe",
			"args":
			[
				"/Zi",
				"/EHsc",
				"/nologo",
				"/MDd",
				"/Debug",
				"/Fe${fileDirname}\\Debug\\${fileBasenameNoExtension}.exe",
				"/Fo${fileDirname}\\Debug\\${fileBasenameNoExtension}.obj",
				"/Fd${fileDirname}\\Debug\\${fileBasenameNoExtension}.pdb",
				"/DUNICODE",
				"/D_UNICODE",
				"/D_DEBUG",
				"${file}",
				"user32.lib",
				"kernel32.lib",
				"shell32.lib"
			],
			"options":
			{
				"cwd":"${fileDirname}"
			},
			"problemMatcher":
			[
				"$msCompile"
			],
			"group":"build",
			"detail":"MSVC Compiler"
		},
		{
			"type":"cppbuild",
			"label":"C/C++:Release",
			"command":"cl.exe",
			"args":
			[
				"/Zi",
				"/EHsc",
				"/nologo",
				"/MT",
				"/Fe${fileDirname}\\Release\\${fileBasenameNoExtension}.exe",
				"/Fo${fileDirname}\\Release\\${fileBasenameNoExtension}.obj",
				"/Fd${fileDirname}\\Release\\${fileBasenameNoExtension}.pdb",
				"/DUNICODE",
				"/D_UNICODE",
				"/DNDEBUG",
				"${file}",
				"user32.lib",
				"kernel32.lib",
				"shell32.lib"
			],
			"options":
			{
				"cwd":"${fileDirname}"
			},
			"problemMatcher":
			[
				"$msCompile"
			],
			"group":"build",
			"detail":"MSVC Compiler"
		}
	]
}
  • 再回到 circle.cpp 的编辑页面,点击“文件菜单下的”运行“选项卡的添加配置会有一个选项框,选择 “C/C++(Windows)“ 选项,然后就会进入到 launch.json 的编辑界面,清空里面的代码,输入如下代码:

{
	"version":"0.2.0",
	"configurations":
	[
		{
			"name":"开始调试 (Debug) ",
			"type":"cppvsdbg",
			"request":"launch",
			"program": "${fileDirname}\\Debug\\${fileBasenameNoExtension}.exe",
			"args":[],
			"stopAtEntry": false,
			"cwd": "${fileDirname}",
			"environment": [],
			"console": "externalTerminal",
			"preLaunchTask":"C/C++:Debug"
		}
	]

}

1.4 编译和调试运行示例代码

  • 完成上述文件的配置后,我们就可以进行编译文件了。回到 circle.cpp 编辑页面,点击"终端"选项卡下的运行生成任务或者 按下 Ctrl+Shift+B 键组合键,如图所示:

  • 选择第一个 “C/C++:Debug“ 就是 Debug 模式编译,选择第二个 就是 Release 模式编译。这里选择图示第一个选项,点击后,底下“终端“输出框将会有如是字样:

* 正在执行任务: C/C++:Debug
正在启动生成...
cl.exe /Zi /EHsc /nologo /MDd /Debug /FeD:\Code\Debug\circle.exe /FoD:\Code\Debug\circle.obj /FdD:\Code\Debug\circle.pdb /DUNICODE /D_UNICODE /D_DEBUG D:\Code\circle.cpp user32.lib kernel32.lib shell32.lib
circle.cpp
生成已成功完成。
* 终端将被任务重用,按任意键关闭。
  • 运行完毕后,左侧文件目录框,就会生成一个 Debug 文件夹,里面的 circle.exe 就是我们刚刚编译的文件啦。

  • 然后点击“运行”选项卡的“非调试模式运行”或者按下 Ctrl+F5 组合键就可以运行程序。

  • 点击“运行”选项卡的“启动调试“或者按下 F5 则就是调试程序,在 .cpp 文件行号左侧点击就是下断点,断点处有红点标记。此时 VSCode 左侧会变成变量监视框和堆栈浏览框。

  • 手动配置教程结束,感谢您的观看!

2.相应官方文档:

  • CL.exe 相应参考参数:https://learn.microsoft.com/zh-cn/cpp/build/reference/compiler-options?view=msvc-170

  • VSCode 配置 Gcc On Windows:https://code.visualstudio.com/docs/cpp/config-mingw

  • VSCode 配置 Gcc On WSL:https://code.visualstudio.com/docs/cpp/config-wsl

3.更新的 VC 生成工具-VC2022

3.1 版本和下载地址

  • VC 生成器版本号:14.34.31933

  • 搭配的 WindowsSDK 版本号:10.0.20348.0

  • https://www.aliyundrive.com/s/kKokamZUufH

3.2 配置方法

  • 以 64 位计算机,编译 64 位程序的需求为例

3.2.1 修改环境变量

Path:

  • D:\VC2022\MSVC\bin\Hostx64\x64

Include:

  • D:\VC2022\MSVC\Include

  • D:\VC2022\MSVC\atlmfc\include

  • D:\VC2022\MSVC\WindowsKits\Include\um

  • D:\VC2022\MSVC\WindowsKits\Include\ucrt

  • D:\VC2022\MSVC\WindowsKits\Include\shared

  • D:\VC2022\MSVC\WindowsKits\Include\winrt

  • D:\VC2022\MSVC\WindowsKits\Include\cppwinrt

Lib:

  • D:\VC2022\MSVC\lib\x64

  • D:\VC2022\MSVC\WindowsKits\Lib\um\x64

  • D:\VC2022\MSVC\WindowsKits\Lib\ucrt\x64

3.2.2 修改 c_cpp_properties.json,修改后可以获得更好的代码提示,错误提示等功能

{
	"configurations":[
		{
			"name":"Win32",
			"includePath":
			[
				"${workspaceFolder}/**"
			],
			"defines":
			[
				"_DEBUG",
				"UNICODE",
				"_UNICODE"
			],
			"compilerPath":"cl.exe",
			"cStandard":"c17",
			"cppStandard":"c++17",
			"intelliSenseMode":"windows-msvc-x64"					
		}
	],
	"version":4}

3.2.3 注意事项

  • 其他操作同第一节的配置

  • 已经内置 EasyX 20220901

  • 支持 ATL,不支持 MFC

  • 32 位计算机请使用 D:\VC2022\MSVC\bin\Hostx86\X86,Include 和 Lib 中的 X64 请改为 X86

4.已有 Visual Studio 的简便方法

4.1 使用 VSCode 插件 CMake

  • 安装 下图所示插件:

4.1.2 使用方法

  • 以在 D 盘下的 example 文件为例

  • 用 VSCode 打开该文件后,按下 Ctrl+Shift+P 组合键,然后如下图所示

  • 选择第一个,然后 CMake 就会自动搜寻电脑上安装的 VC 系列或者 GCC 系列工具链。如下图所示(笔者电脑上是安装了 VS2022 生成工具):

  • 此处选择 Visual Studio 生成工具 2022 Release -X86,选择后,会有如图所示图样:

  • Library 是选择生成库文件,Executable 是选择生成可执行文件 (.exe),选择第二个选项

  • 选择后会进入到 CMakeList.txt 文件的编辑页面,熟悉 CMake 的可以直接写 CMake 相关命令

  • 在生成 CMakeLists.txt 的同时还会有 main.cpp 的生成,进入这个源文件的编辑界面,可以发现已经自动写好了一个 Hello World 程序

  • 将视线移到下面如图所示的栏目条

  • 左侧第的 “CMake:[Debug]:Ready" 按钮是表示 CMake Debug 模式就绪,点击它可以切换 release 等模式

  • 更左侧的一个按钮是切换工具链,具体可以亲自点击查看

  • Build 标签的按钮是编译生成的功能类似于 VS 的生成解决方案

  • [ALL_BUILD] 在熟练掌握 CMake 后,自然就会了解,这里不展开讲解

  • [ALL_BUILD] 按钮右侧旁边的两个按钮,都是运行程序的功能,一个是不在终端运行,一个是在 VSC 里的内置终端窗口运行,具体可以亲自尝试,感受不同

4.3 使用 EasyX 的注意事项

  • 如果 Visual Studio 中已经配置了 Easyx ,不用在 CMakeLists.txt 中写入相关链接库的操作


END


今天的分享到此结束了,如果在编程学习的路上遇到问题,不妨来我的编程学习交流基地一起来学习探讨~

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

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

相关文章

微信小程序021理发店美容预约系统java nodejs php

美容预约小程序微信端要求在系统的手机上可以运行&#xff0c;主要实现了管理端&#xff1b;首页、个人中心、用户管理、服务项目管理、美容师管理、预约管理、类型管理、系统管理&#xff0c;微信端&#xff1b;首页、预约、我的等主要功能模块的操作和管理。 小程序前端框架&…

ML LightGBM详细原理讲解+面试必考知识点

&#x1f604; 三大竞赛杀器&#xff1a;XGBoost、LightGBM、CatBoost。之前我已更新完XGBoost的讲解&#xff0c;这次来讲讲LightGBM。我也是看网上看了多篇文章做总结的(我是遇到不会问题的就去搜&#xff0c;实在记不起来看过哪些&#xff0c;如果有侵权问题&#xff0c;可私…

Spark 读取、写入时序数据库TDengine以及TDengine概述

一、TDengine是什么TDengine 是一款高性能、分布式、支持 SQL 的时序数据库&#xff0c;其核心代码&#xff0c;包括集群功能全部开源&#xff08;开源协议&#xff0c;AGPL v3.0&#xff09;。TDengine 能被广泛运用于物联网、工业互联网、车联网、IT 运维、金融等领域。除核心…

Postman form-data、x-www-form-urlencoded的区别

我们在平时的postman请求调试&#xff0c;以及web的http请求开发时&#xff0c;常常能看到以下几种传参的形式 form-data、x-www-form-urlencoded、raw、binary&#xff0c;那么这些请求方式的区别是什么呢&#xff1f; 1、form-data: 就是http请求中的multipart/form-data,它…

一文读懂!2023量子计算行业发展方向

&#xff08;图片来源&#xff1a;网络&#xff09;量子计算是一个引人入胜的主题&#xff0c;放眼全球&#xff0c;很多文章报道了商业量子计算的项目和应用&#xff0c;关于量子计算行业在2023年的可能发展方向&#xff0c;本文从大量文章中筛选罗列了一些主要发展方向。McKi…

postman生成测试报告

一、newman插件生成测试报告安装nodejs官网下载适合自己设备的包&#xff0c;下载后直接傻瓜式安装&#xff1b;安装完成验证&#xff1a;打开终端&#xff0c;输入 node -v&#xff0c;即可查看安装版本&#xff1b;安装newman安装好nodejs后&#xff0c;通过npm来安装newman&…

VueJS 基础之组件

文章目录参考描述组件化开发组成templatescriptstylemain.js使用嵌套关系组件的使用LeftRight举个栗子全局组件及私有组件私有组件全局组件举个栗子main.jsApp.vue参考 项目描述VueJS官方文档搜索引擎Bing哔哩哔哩黑马程序员 描述 项目描述Edge109.0.1518.70 (正式版本) (64 …

计算机网路6-详述网路层:数据交换、路由算法和协议、网络协议

一、网络层基本概念 1、主要任务 把分组从源端传到目的端&#xff0c;为分组交换网上的不同主机提供通信服务 2、网络层传输单位--数据报 数据报与分组之间关系&#xff1a; 分组是数据报通过切割划分出来的一个片段&#xff0c;多个分组组成数据报 3、网络层的几大功能 路…

LeetCode-122. 买卖股票的最佳时机 II

目录暴力递归动态规划贪心题目来源 122. 买卖股票的最佳时机 II 暴力递归 根据题意&#xff1a;由于不限制交易次数&#xff0c;在每一天&#xff0c;就可以根据当前是否持有股票选择相应的操作。「暴力搜索」在树形问题里也叫「回溯搜索」、「回溯法」。 首先画出树形图&…

如何实现报表集成?(二)——用户同步和单点登录

在上一篇&#xff0c;我们对报表集成进行了一个整体的介绍&#xff0c;从报表集成的背景、痛点、需求、集成架构等几个方面进行了阐述。 这一篇&#xff0c;我们来聊一下用户同步和单点登录。行文过程中得到了来自报表软件厂商 Smartbi 的报表产品&#xff1a;电子表格软件的协…

c++11 标准模板(STL)(std::multiset)(三)

定义于头文件 <set> template< class Key, class Compare std::less<Key>, class Allocator std::allocator<Key> > class multiset;(1)namespace pmr { template <class Key, class Compare std::less<Key>> usi…

怎么给视频配音好听?这些好方法快学起来

应该不少小伙伴每天都会刷各种短视频&#xff0c;有些视频很搞笑&#xff0c;有些却很无趣&#xff0c;让人想直接的划走。很多制作短视频的小伙伴应该都知道&#xff0c;很多视频都需要配音来衬托&#xff0c;吸引别人的眼球。当你想给自己的视频配上好听的声音&#xff0c;但…

QT/C++——网络编程

目录 一、基础知识复习 二、UDP 客户端&#xff1a; 服务器&#xff1a; 三、TCP 服务器&#xff1a; 客户端&#xff1a; 四、小项目 客户端&#xff1a; 服务器&#xff1a; 一、基础知识复习 这部分内容前面讲的比较详细&#xff0c;现在就是简单复习一下。 两台主…

OAuth2授权机制介绍指南

目录 一、什么是OAuth2&#xff1f; 二、OAuth2中有哪些角色&#xff1f; 三、OAuth2的授权流程&#xff1f; 四、OAuth2令牌的特点&#xff1f; 五、OAuth2有哪些授权方式&#xff1f; 5.1 授权码 5.2 隐藏方式 5.3 密码方式 5.4 凭证方式 一、什么是OAuth2&#xff1f; …

PowerCLi 批量多esxi主机创建登陆用户

官网PowerCLI参数配置参考 New-VMHostAccount 创建用户参考New-VIRole 创建权限组参考Get-VIPrivilege 查询所有角色层配置信息参考创建esxi登陆用户一键脚本,目前只能单

2023年软考报哪门比较好?

2023年软考报名还有一个月左右就会启动了&#xff0c;大家有想好报考哪门吗&#xff1f;不妨看看下文&#xff0c;让你的思路更加清晰。 软考科目汇总&#xff1a; (1)高级资格&#xff1a;网络规划设计师、系统规划与管理师、系统架构设计师、信息系统项目管理师、系统分析师…

磨金石教育技能干货分享|年味摄影作品选登:你的春节怎么过的

要问年味是什么&#xff1f;味&#xff0c;是一种感觉&#xff0c;年味就是&#xff1a;除夕夜里&#xff0c;红灯笼挂满街道&#xff0c;各种年货摆满长街。各种美食充满餐桌&#xff0c;亲人团聚&#xff0c;欢笑一堂。这种让人放松、快乐的感觉就是过年特有的味道。最近由长…

MySQL(一)

性能监控 使用show profile查询剖析工具&#xff0c;可以指定具体的type type all&#xff1a;显示所有性能信息 show profile all for query n block io&#xff1a;显示块io操作的次数 show profile block io for query n context switches&#xff1a;显示上下文切换次数&a…

【算法基础】整数二分查找法

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前是C语言学习者 ✈️专栏&#xff1a;【C/C】算法 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章对你有帮助的话 欢迎 评论&#x1f4ac; 点赞…

[golang Web开发] 1.golang web开发简介以及web服务器的搭建以及http协议简介

一.web开发简介 1.简介 Web应用在我们的生活中无处不在,看看我们日常使用的各个应用程序,它们要么是 Web应用&#xff0c;要么是移动 App 这类 web应用的变种,无论哪一种编程语言&#xff0c;只要它能够开发出与人类交互的软件&#xff0c;它就必然会支持 Web应用开发,对一门崭…