当前位置:首页 > 技术分析 > 正文内容

环境配置:VSCode 配置 C/C++ 开发环境详细教程( MSVC )

ruisui882个月前 (03-12)技术分析9

0. 使用工具说明:

本文使用的 VSCode 是从官网下载的,有相应的 32 位和 64 位版本,支持 Win 7 和 Win 10。

本文使用的生成工具是从 https://appzip.cn/vc2010 上提供的 VC2010 中提取出来的 32 位 MSVC 工具链,在 Win 7 或 Win 10 的 64 位或 32 位系统都能成功使用。


1. 无需配置的绿色版本

下载链接:
https://www.aliyundrive.com/s/DMK13owZSrC

解压后,运行里面的 VCVars.bat(只需要运行一次),它的作用是帮助您快速设置环境变量。

再运行 ShortCut.bat 它会在您的桌面上生成 VSCode 的快捷快捷方式。

打开运行 VSCode,如果 VSCode 依然是英文界面,那么需要重新启动 VSCode 一次,就能正确加载语言包插件。

在绿色版里配套了一个 Sample 的文件夹,用 VSCode 打开它,就能看到一个使用 EasyX 的例子。

创建新项目时,只需要把 Sample\.vscode 文件夹移到您的项目于内容下,就可以避免重复配置。

2. 手动配置

前往
https://code.visualstudio.com/下载 VSCode,安装完成,点击运行。按住 Ctrl + Shift + X 键或者点击 VSCode 左侧第 5 个按钮 .

然后搜索 Chinese,安装简体中文插件进行汉化,喜欢英文原版可以跳过此步。这里认为你选择了中文插件。安装中文插件之后,搜索 C++,下载第一个 C/C++ 插件。

前往链接:
https://pan.baidu.com/s/1NoNGblBZmjXU_Pya4jJpCg 提取码:1234 下载所需的 VC 生成工具。

解压后(以解压在 D:\App 下为例),进行设置环境变量。

新建一个文件夹(假设是 D:\Project),用 VSCode 打开它,按住 Ctrl + Shift + P 键,输入 C++,会有一个下拉列表,选择 编辑 C++:编辑配置(UI)选项,

然后会出现一个 ” C/C++ Configurations “ 的配置页面,这个配置是用来配置 IntelliSense,它可以提供语法检查的功能,在语法错误的位置画红色波浪线。

配置名字可以任你填写。然后下滑到编译器选项,填入 D:\App\VCompiler\Bin\cl.exe。

IntelliSense 模式中选择 windows-msvc-x86 选项(因为提供的生成工具是 32 位的 vc2010 的生成工具)。

包含路径选项是加入您额外添加的头文件的路径,可以自行根据需要添加。

定义选项是给 IntelliSense 添加预定义宏。可以自行根据需要添加。(里面默认定义了 UNICODE 和 _UNICODE 是为了设置 Unicode(宽)字符集,删除后是多字节(窄)字符集,DEBUG 是设置调试宏,删除后是 Release 模式)。

下面的 C 和 C++ 标准,分别选择 C11 和 C++11 即可。

配置过后如下:

设置完 C++ 配置后,可以新建一个 main.cpp 文件,简单写一个 helloworld 代码。

点击终端中的配置任务选项,这个是决定 VC 生成工具如何生成 exe。

接着会出现一个下拉列表,选择 C/C++ : cl.exe 生成活动文件。然后会自动进入 task.json 的编辑页面。C/C++ 插件已经默认配置完毕,但需要在里面的 args 选项中加入 /DUNICODE,/DUNICODE,/DEBUG。

这是为了让生成工具预定义使用宽字节字符集和调试模式下的宏,可以根据需要自行追加,配置过后如下:

配置生成任务后,回到 main.cpp 页面,点击终端选项中的运行生成任务,选择提示已配置的任务。底下会出现一个终端框,里面会有生成结果的显示。出现”生成已成功完成“就表示生成成功,而 VSCode 的左侧文件目录会多出

几个文件,可以看到编译生成的可执行文件 main.exe。

有了编译还不够,还需要一个调试的配置。

选择 VSCode 上方运行选项中的添加配置,选择出现的下拉列表中的 C++(WIindows)。进入 launch.json 的编辑界面,点击右下方的添加配置按钮,将出现一个下拉选择列表,选择里面的 C/C++(windows) 启动。

VSCode 会自动添加相关配置,我们需要修改里面的 program 项,修改为"${fileDirname}\\${fileBasenameNoExtension}.exe",这样 VSCode 便能正确设置被调试文件。配置好后如下文:

配置完毕后,回到 main.cpp 页面,点击上方运行选项中的非调试模式运行(或者按下 Ctrl + F5),VSCode 会自动执行我们通过生成任务生成的 exe。

调试的方法是在下好断点后,点击上方运行选择中的启动调试(或者按下 F5),就会开始进入调试模式。左侧的文件目录框也会变成调试界面框。

这样调试和编译就完成了,在您的其他项目中,为了不必要的重复配置,可以把文件目录里的 如 C:\Project\.vscode 文件夹复制到您的项目文件夹里,这个 .vscode 文件夹保存的是您的配置文件。

类似这样的文件结构:

3. 使用 EasyX

VC 生成工具里面已经加入了 Easyx 的头文件和库文件,但还需要在您的生成任务 (task.json) 配置中加入这些库:shell32.lib gdi32.lib user32.lib ole32.lib

像下文这样。

4. 其他事项

如果需要多文件编译,假设这里您有一个 a.h 和 a.c,需要在 args 里面加入 a.c,调整后的大致如下所示:

在您的其他项目里若引用了第三方库,需要在 .vscode\task.json 里 args 项加入相关库的引用。

args 项是 cl.exe 的命令行参数,想了解更多。可以前往
https://docs.microsoft.com/中查询相关用法。

原文链接:
https://codebus.cn/sysci/vscode-with-msvc

此外,我也给大家分享我收集的其他资源,从最零基础开始的教程到C语言C++项目案例,帮助大家在学习C语言的道路上披荆斩棘!

编程学习书籍分享:

编程学习视频分享:

整理分享(学习的源码、项目实战视频、项目笔记,基础入门教程)最重要的是你可以在群里面交流提问编程问题哦!

对于C/C++感兴趣可以关注小编在后台私信我:【编程交流】一起来学习哦!可以领取一些C/C++的项目学习视频资料哦!已经设置好了关键词自动回复,自动领取就好了!

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/2729.html

标签: vscode怎么用
分享给朋友:

“环境配置:VSCode 配置 C/C++ 开发环境详细教程( MSVC )” 的相关文章

如何在 Linux 发行版中安装微信和 QQ?

很多人因为工作沟通的原因需要用到微信和 QQ,那么如何在 Linux 发行版中安装微信和 QQ 呢?以下是一些尝试的解决方法。QQ上一个版本的 QQ Linux 版还是在2009年,而在现在,基于 NT 架构的全新 QQ Linux版已经被正式推出,为所有用户提供下载。新版本提供了deb、rpm、A...

Git 分支管理策略汇总

最近,团队新入职了一些小伙伴,在开发过程中,他们问我 Git 分支是如何管理的,以及应该怎么提交代码?我大概说了一些规则,但仔细想来,好像也并没有形成一个清晰规范的流程。所以查了一些资料,总结出下面这篇文章,一共包含四种常见的分支管理策略,分享给大家。Git flow在这种模式下,主要维护了两类分支...

Gitlab之间进行同步备份

目前,我们公司有两个研发团队,分别在北京和武汉,考虑到访问速度的问题,原有武汉的研发环境在近端部署。也就是北京和武汉分别有两套独立的研发管理环境,虽然这解决了近端访问速度的问题,但是管理上较为分散,比如研发环境备份和恢复就是最重要的问题之一。最近,处于对安全性和合规性的考虑,希望将北京和武汉的源代码...

7 招教你轻松搭建以图搜图系统

作者 | 小龙责编 | 胡巍巍当您听到“以图搜图”时,是否首先想到了百度、Google 等搜索引擎的以图搜图功能呢?事实上,您完全可以搭建一个属于自己的以图搜图系统:自己建立图片库;自己选择一张图片到库中进行搜索,并得到与其相似的若干图片。Milvus 作为一款针对海量特征向量的相似性检索引擎,旨在...

BuildKit 镜像构建工具

#暑期创作大赛#快速开始 对于 Kubernetes 部署,请参阅examples/kubernetes。BuildKit 由buildkitd守护进程和buildctl客户端组成。虽然buildctl客户端可用于 Linux、macOS 和 Windows,但buildkitd守护程序目前仅适用于...

vue v-html动态生成的html怎么加样式/事件

1、动态生成的html,样式不生效//html 布局 <view v-html="html"> {{html}} </view> //动态生成的元素 <view class="btngo" @tap="handleLink...