VScode搭建C/C++开发环境

news2024/9/21 4:30:33

 

目录

 

1.VScode是什么?

2.VScode的下载和安装 

2.1下载和安装

下载:

安装:

 2.2环境的介绍

环境介绍:

安装中文版插件 :

3.VScode配置C/C++开发环境

3.1下载和配置MinGW-w64 编译器套件 

下载:

配置Mingw64:

3.2安装C/C++插件

3.3重启VScode

4.在VSCode上编写C语言代码并编译成功

4.1打开文件夹

4.2新建C语言文件、编写C语言代码 

4.3设置C/C++编译的选项:c_cpp_properties.json

4.4 创建执行任务:tasksjson 

4.5编译+执行

4.5.1编译

4.5.2执行 

5.再写一个代码该怎么办?

 5.1方法1:

 5.2方法2

6.一个工程中有多个.c文件该怎么去编译呢?

6.1拷贝文件

6.2调整tasks.json文件中的内容

6.3执行

7. VScode的调试

7.1创建launch.json 文件

7.2开始调试

 


1.VScode是什么?

Visual Studio Code 简称 VS Code,是一款跨平台的、免费且开源的现代轻量级代码编辑器,支持几乎主流开发语言的语法高亮、智能代码补全、自定义快捷键、括号匹配和颜色区分、代码片段提示、代码对比等特性,也拥有对git的开箱即用的支持。同时,它还支持插件扩展,通过丰富的插件,用户能获得更多高效的功能。

所谓的跨平台指的是可以在多种环境下都可以使用:

2.VScode的下载和安装 

2.1下载和安装

下载:

下载地址:https://code.visualstudio.com/download

 根据自己的需要进行下载即可。

安装:

双击安装包,选择合适的目录

 2.2环境的介绍

环境介绍:

安装中文版插件 :

 毕竟这个VScode 默认是英文的,如果使用不习惯的话,可以安装中文插件,将VSCode的界面汉化的,在左边的侧边栏中点击插件,就可以搜索: Chinese,显示的第一个插件就是汉化包,直接安装即可。

 点击Install下载插件,安装完汉化包后,立马就在右下角提示,如下窗口,点击蓝色文字,会自动重启VSCode,即可汉化使用,非常方便。

 

 汉化之后的界面:

 3.VScode配置C/C++开发环境

 VSCode毕竟是一个高级的编辑器,只能用来写C/C++代码,不能直接编译代码。所以,如果我们要能使用VSCode搭建C/C++的编译和调试环境,还必须有编译器使用。为了方便,我们就使用 MinGW-w64,MinGW-W64 是移植到Windows平台的一个gcc编译器,使用起来也是非常方便的。下面我们就演示怎么下载和配置MinGw-w64。

3.1下载和配置MinGW-w64 编译器套件 

下载:

下载地址:https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/

要注意,进入网站不要直接点击下载,往下面拉,找到下图所对应的位置:

 直接点击,就会自动进行下载,下载完成之后会得到这样的一个压缩包:

 如果你和我一样使用的是360压缩软件,就可以得到这样的压缩包,如果使用的是别的压缩软件,得到的压缩包可能有所差异,但是名字都是一样的。

然后解压缩,这里要注意,需要将解压缩之后的mingw放在一个容易管理的路径下,以便使用,比如放在C/D盘的根目录下面。

 解压之后就得到了这样的一个文件,然后点击进入,里面有一个mingw64的文件,这就是我们所下载的编译套件,然后将他拷贝一份,直接放在C/D盘的根目录下面。

 此时mingw64的编译器路径就是:D:\mingw64

配置Mingw64:

在windows电脑上,按win+s快捷键,或者直接在在搜索框中搜: 环境变量,就能看到:

 然后点击,进去之后找到环境变量,然后在下面的系统变量中找到Path:

 然后点击进入Path:点击新建,然后将mingw64中的bin文件的路径拷贝进去,然后依次点击确定

 需要将我们打开的三个窗口都点击确定即可配置完成!!

在操作完之后,我们最好验证一下:
在windows电脑上打开cmd窗口,输入: gcc -version 或者 where gcc ,要是能看到下面的界面,就说明MinGW-w64的编译器套件已经配置好了。

 

 如果输入命令之后出现这个界面那么证明已经配置成功。

 3.2安装C/C++插件

要在VSCode上编译代码,还得配置C/C++插件,再次在VSCode的插件中搜索: C/C++,点击安装。

3.3重启VScode

重启VScode是为了让我们之前的配置都生效,以便在后面的使用过程中不会出现错误

4.在VSCode上编写C语言代码并编译成功

 4.1打开文件夹

在VSCode上写代码都是首先要打开文件夹的,这样也方便管理代码和编译器产生的可执行程序,和VSCode生成的配置文件等。
在写代码前,我们想清楚想把代码放在什么地方管理,比如: 在D盘下,我创建一个code的文件夹,我希望以后我写的代码都管理在code目录下,然后每天写的代码我再使用一个文件夹管理,比如: test_4_9,如下图:

然后我们需要在VScode中添加这个文件夹,打开VScode左边的文件资源管理器,然后点击打开文件夹,将我们创建好的文件添加进去:

 然后勾选信任,进行下一步:

 打开成功之后发现VScode里面显示的都是大写字母:

4.2新建C语言文件、编写C语言代码 

 创建C语言文件:

 然后我们就可以编写C语言代码了,比如要在屏幕上打印Hello World:

4.3设置C/C++编译的选项:c_cpp_properties.json

鼠标点在.c的源文件内部,按 Ctrl+Shift+p 快捷键,在弹出的界面中选择: [C/C++:编配置(UI)],然后进入设置页面。 

 点进去之后我们要设置我们的编译器路径和IntelliSense 模式:

 

4.4 创建执行任务:tasksjson 

 要编译代码,我们接下来,在终端中:配置任务,如下图:

 然后选择gcc.exe:

 打开之后就会出现一个新的文件夹:这个文件是专门来执行编译任务的。

4.5编译+执行

 4.5.1编译

完成了上述的步骤,我们就准备好了所有的准备,接下来就可以编译并生成可执行程序了。具体操作如下:

1.鼠标点在要编译的C语言代码中

2.然后执行[终端]->[运行生成任务] 

 

 

 执行成功之后会生成一个test.exe的可执行程序:

4.5.2执行 

然后将上一次运行之后的终端关闭,然后按键盘的 Ctrl+ `(Esc下面的按键)快捷键,打开VSCode自带的终端,就可以运行代码了这时输入: .\可执行程序的名字,即可以执行代码,如下图:

 然后输入命令:.\+可执行程序的名字:

5.再写一个代码该怎么办?

 5.1方法1:

在本文件下面编写新的代码:

如果你的代码还是单独的一个.c文件,在当前打开文件夹中就可以编写,那直接在当前打开的文件中新建.c源文件,编写代码,对当前的代码,直接执行[终端]->[运行生成任务] :

 然后再打开VScode自带的终端,输入.\+可执行程序名字:

 5.2方法2

创建新文件重新编写代码:

 如果你要写的代码需要单独文件夹管理,那就再次打开新的文件夹来编写代码,编译和执行了。比如:新的代码需要放在test_4_10的文件夹中管理:

先创建新的文件夹test_4_10,然后将test_4_9中的vscode这个文件夹拷贝到test_4_10文件中,这时再在VScode中添加文件夹test_4_10之后就会发现新添加的文件夹中也有我们第一次创建文件夹的两个文件夹:

 

 在我们新添加的文件中就出现了这两个文件

然后我们就可以编写代码了:

 写好代码之后就可以正常的执行代码,过程和上面的过程一样:终端-》运行生成任务-》打开VScode自带的终端-》输入.\+可执行程序名字:

6.一个工程中有多个.c文件该怎么去编译呢?

假设我们有一个工程multiple_files下面有多个文件需要编译,如下图: 

在multiple_files下面有两个文件,需要执行一次加法运算,那我们该怎么去处理呢?

 如何一次同时编译执行两个文件呢?

6.1拷贝文件

先把之前已经写好的配置文件拷贝一份放在multiple_files这个目录下面。

6.2调整tasks.json文件中的内容

编译多个源代码文件:


通过把"${file}"修改为"${workspaceFolder}\\*.c”,可以构建当前工作区中的所有C文件

 

通过把"${file}"修改为"${workspaceFolder}\\.*cpp”,可以构建当前工作区中的所有C++文件


修改编译输出的文件名:


1.通过把"${fileDirname}\\${fileBasenameNoExtension}.exe",修改为:"${workspaceFolder}\\myProgram.exe"可以把编译输出的文件名硬编码myProgram.exe,而不是与C文件同名。


2.通过把"${fileDirname}\\${fileBasenameNoExtension}.exe",修改为:"${workspaceFolder}\\${workspaceRootFolderName}.exe",可以把编译输出的文件名为: 打开的工作区文件夹名字.exe。

以上的的两种方式都是可行的,我们在这里选择第二种方法,让生成的可执行程序与我们的文件名相同:

 

6.3执行

按照之前的执行操作流程进行操作即可:

7. VScode的调试

前面讲解的都是如何去编译代码,当我们生成一个可支持程序的时候,如果遇到了运行时的问题,我们就要想办法调试代码,那VSCode如何调试代码呢?接下来听我细细道来~其实在VSCode上调试关键也是依赖一个配置文件的叫: launch.json,那我们看看怎么调试。 

7.1创建launch.json 文件

首先点击调试,创建launch.json文件:

然后选择C++(GDB/LLDB)。

这时在我们的文件目录下面就生成了一个launch.json文件

 然后点击添加配置:选择C/C++(gdb)启动

 这是生成的默认的配置信息,当然我们也许需要进行改造一下:

默认信息:

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "输入程序名称,例如 ${workspaceFolder}/a.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "/path/to/gdb",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ]
        }



    ]
}

在这里我们需要改两个地方:

 如果你的mingw64也是和我一样的路径:D:\\mingw64\\bin\\gdb.exe

 修改完之后得到了新的配置信息:

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}\\${workspaceRootFolderName}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "D:\\mingw64\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ]
        }



    ]
}

7.2开始调试

当launch.json文件生成后,我们只要打断点开始调试就行。

调试的快捷键和VS系列的IDE是一样的,如:
F9- 打断点/取消断点
F5-启动调试
F11-逐语句调试
F10-逐过程调试
启动调试后,也是可以使用监视窗口查看变量等程序执行过程中的信息。 

 关于VScode如何搭建C/C++开发环境的教程就分享到这里,喜欢的老铁可以点赞+关注,感谢各位老铁支持!!

 
 

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

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

相关文章

每日浅读SLAM论文——简析LIO-SAM

文章目录 Overview雷达里程计IMU预积分GPS回环代码结构解析 今天讲一篇经典的LIO(LiDAR-Inertial Odometry)SLAM论文——LIO-SAM。 雷达里程计由于其高鲁棒性、较低成本(二维雷达不贵、三维雷达价格也在降、IMU不太贵)&#xff0c…

【解决】uniapp的全局公共组件(不用在每个页面引入组件标签),各平台均可使用!!!!

感谢滚动君大佬提供的思路,但是此方法只适用于微信小程序 app端之所以不能用的关键原因在于不能找到resourcePath原始路径,不像小程序会提供一个路径区分哪些文件来自组件哪些文件来自页面,如果不做区分,那么页面栈就会超载&…

EasyCVR视频融合平台国标级联后推送不了通道是什么原因?

EasyCVR视频融合平台基于云边端一体化架构,具有强大的数据接入、处理及分发能力,平台支持海量视频汇聚管理,可支持多协议、多类型的设备接入,并能对设备进行分级、分组管理,并支持权限、角色分配,属于功能全…

电子时钟制作(瑞萨RA)(9)----读取DHT11温湿度数据

概述 本篇介绍如何驱动DH11湿度传感器同时实现当前串口数据打印。 DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。 硬件准备 首先需要准备一个开发板,这里我准备的是芯片型号R7FA2E1A72DFL的开发板: 视频教程 https://www…

从零实现深度学习框架——注意力机制

引言 本着“凡我不能创造的,我就不能理解”的思想,本系列文章会基于纯Python以及NumPy从零创建自己的深度学习框架,该框架类似PyTorch能实现自动求导。 💡系列文章完整目录: 👉点此👈 要深入理解…

网络数据包的监听与分析——IP数据报文分析

1. 抓包工具下载 x下面是一个IP数据报的抓包软件——IPtool的蓝奏云下载链接 https://wwix.lanzoue.com/iaGpy11klpnc 2. iptool使用 下载解压之后,右击以管理员身份运行,打开该exe文件即可 然后点击绿色运行就开始捕包了 随便点一个包进去进行分析就可…

Java文档

API(Application Programming Interface,应用程序编程接口)是Java提供的基本编程接口(java提供的类还有相关方法)。中文在线文档:Java 8 中文版 - 在线API手册 - 码工具 (matools.com) Java语言提供了大量…

Java项目 仿天猫商城系统(springboot+mybatis+mysql+maven+jsp)

基于springbootmybatismysqlmavenjsp仿天猫商城系统 一、系统介绍1、系统主要功能:2.涉及技术框架: 二、功能展示三、其它系统四、获取源码 一、系统介绍 1、系统主要功能: 项目主要参考天猫商城的购物流程:用户从注册开始&…

浅谈线段树

1.前言 Oi-Wiki上的线段树 同步于 c n b l o g s cnblogs cnblogs发布。 如有错误,欢迎各位 dalao 们指出。 注:本篇文章个人见解较多,如有不适,请谅解。 前置芝士 1.二叉树的顺序储存 2.线段树是什么? 线段树…

“量贩零食”热潮袭来:真风口还是假繁荣?

以前只听过量贩式KTV,现在“量贩零食店”也出现在了大街小巷。 高考结束后,家住武汉的花花频繁逛起了量贩零食店。这类店把各种零食集合在一起销售,用低价来换取高销量,主打一个性价比。店里的散装零食即便按斤售卖,也…

蛋白组学 差异蛋白分析 富集分析 go kegg

生信学习day1-蛋白组分析 蛋白质组差异分析的三个R包 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/448479536Introduction to DEP (bioconductor.org)http://www.bioconductor.org/packages/release/bioc/vignettes/DEP/inst/doc/DEP.html#lfq-based-dep-analysis浅谈蛋白…

阿里云coluder认证训练营开班!

在这个充满机遇和挑战的时代里,云计算已经成为推动企业创新和发展的关键技术。而作为云计算人才培训领域的领军企业,摩尔狮致力于培养更多优秀的云技术人才, 所以摩尔狮联合阿里云为大家打造了免费的云计算入门课程——Clouder认证集训营&…

全方位了解VR全景展示与制作

引言: 虚拟现实(VR)技术正在以惊人的速度改变我们的生活方式和体验方式。其中,VR全景展示与制作作为虚拟现实的重要应用之一,为用户提供了身临其境的视听体验。 一、了解VR全景展示与制作 1.VR全景展示 VR全景展示是…

JDK,JRE,JVM的区别

1.JVM JVM,也叫java虚拟机,用来运行字节码文件,可将字节码翻译为机器码,JVM是实现java跨平台的关键,可以让相同的java代码在不同的操作系统上运行出相同的结果。 2.JRE JRE,也叫java运行时环境&#xff…

【JS】javascript学习笔记

step by step. 目录 严格区分大小写 点击事件: JavaScript关键字/语句标识符 数据类型 对象Object 创建对象方法 事件 循环 标签 正则表达式 异常 未定义adddlert-> throw—— 调试工具debugger ​编辑 JS严格模式 表单 严格区分大小写 点击事件&am…

python3 学习笔记

一、注释 1.单行注释:# 开头 2.多行注释: 和 """ 二、缩进 python是使用缩进来表示代码块,不需要使用大括号{} python具有严格的缩进原则,每个缩进一般可以有两个或四个空格组成,也可以是任意数量的…

深度学习常用优化器总结

一、优化器的定义 优化器(optimizer)本质上是一种算法,用于优化深度学习模型的参数,通过不断更新模型的参数来最小化模型损失。在选择优化器时,需要考虑模型的结构、模型的数据量、模型的目标函数等因素。 二、常用…

web前端总结(一)HTML标签

1.语法结构&#xff1a; <标签 属性 “值”>内容</标签> <p align "center">标签内容</P> 2.标签 1.标题标签&#xff1a; **标题标签 <h1> - <h6>&#xff08;重要&#xff09;** 为了使网页更具有语义化&#xff0c;我们…

stm32_<一文通>_cubemx_freertos

文章目录 前言一、任务调度1.1 延时1.1.1 相对延时1.1.2 绝对延时 1.2 挂起和恢复1.2.1 cmsis的挂起和恢复函数1.2.2 freertos的挂起和恢复函数 1.3 删除1.3.1 cmsis的删除任务函数1.3.2 freertos的删除任务函数 二、Freertos任务与中断三、消息队列3.1 写入和读取一个数据3.2 …

6阶高清视频滤波驱动MS1681

MS1681 是一个单通道视频缓冲器&#xff0c;它内部集成6dB 增益的轨到轨输出驱动器和6 阶输出重建滤波器。MS1681 的-3dB 带宽为35MHz&#xff0c;压摆率为160V/us。MS1681 比无源LC 滤波器与外加驱动的解决方案能提供更好的图像质量。它单电源供电范围为2.5V 到5.5V&#xff0…