vscode的C/C++环境配置和调试技巧
目录
1.背景
2.下载编译器
3.配置环境变量
4.安装C/C++插件
5.写C语言代码并且编译成功
5.1文件操作
5.2对于两个窗口的解释
5.3C语言编译环境配置
6.创建执行文件
7.编译运行过程
8.写其他的代码的解决方案一
9.写其他的代码的解决方案二
10.同时编译多个.c文件
10.1对于内容的修改
10.2文件内容
10.3重新编译
11.C++环境配置和运行(和C基本一样)
12.vscode调试过程
12.1创建launch文件
12.2添加配置
12.3效果图展示
12.4对于launch文件的修改
1.背景
我个人的话最早接触这个vscode是学习python的时候,知道的这么一个编辑器,当时还是纯小白,所以不太明白这个vscode的强大之处,还不理解这个编辑器,编译器的相关的概念,加上当时这个python学习并不顺利,因为使用这个软件编写代码老报错,所以觉得这个软件并不怎么好用,后来发现自己大错特错了;
后来学习前端的时候,使用这个vscode写过一些类似于CSS文件,又觉得这个软件还是挺好的,但是对于这个软件学习python还是很有阴影的,后来了解到这个编译器,编辑器的相关概念,以及集成开发环境这些东西,感觉自己错怪了他;
现在,知道这个C,C++代码也可以使用这个vscode进行编写,因为我之前使用的都是visual studio集成开发环境,但是数学建模写的python代码就是用这个软件,所以我就想学习一下这个软件的相关操作,因为之前一直知道这个vscode的强大之处,我也知道这个软件没有我想象里面这么简单,所以这个时候我就决定学习这个vscode编写C/C++代码,增强自己对于vscode的理解;
2.下载编译器
因为这个vscode就是一个编辑器,所以C/C++代码想要进行编译的话,我们就需要去下载一个编译器,就是类似于gcc/g++这样的东西,把我们的代码运行起来,下面的就是下载的连接和选项(下载的时间可能有点长);
MinGW-w64 - for 32 and 64 bit Windows download | SourceForge.net
https://sourceforge.net/projects/mingw-w64/

我们下载之后需要解压,我们可以先解压到D盘,存的话,建议存到根目录下面,比较容易找到的位置,我这里是存到了C盘的根目录里面去,方便我们后续对于这个环境变量的控制;

3.配置环境变量
配置环境变量可以让我们在命令行里面进行操作,而且可以避免我们后面出现的很多的问题,就是把我们的bin路径(bin在我们的那个解压的文件里,一般是第一个)添加到环境变量里面去(这个只要配置过一次就熟悉了,我之前介绍这个qt的那个时候就介绍过这个过程,详细信息可以去看那个教程,新手还是了解一下最好);
Qt相关安装教程-CSDN博客
https://blog.csdn.net/binhyun/article/details/141083921?spm=1001.2014.3001.5502配置好环境变量之后,我们就可以在我们的命令行里面查看我们的编译器的版本:
按住win+R键,输入cmd,敲入下面的这一行命令之后,我们就可以去检查我们的gcc版本:如果出现对应的信息,就可以说明我们的安装是成功的;

4.安装C/C++插件
这个是在vscode里面安装的插件,这个插件按照下面的方式进行安装,安装后重启,就可以让我们的相关设置生效;

5.写C语言代码并且编译成功
5.1文件操作

这个就是创建文件夹,然后在vscode里面打开这个文件夹,在里面写对应代码:

5.2对于两个窗口的解释
不得不说一下,我到今天才明白这个东西,其实vscode里面有两个窗口,一个是我们的搜索窗口,一个就是设置的窗口,我们进行这个代码编译环境使用的就是设置窗口;
这个就是vscode里面最常见的一个窗口,但是这个窗口只能搜索相关的文件,不可以干其他的事情,我们的配置不是在这个窗口里面进行的;

按住ctrl+shift+P快捷键,这个弹出的窗口才是我们进行配置的窗口(虽然他们在一个位置):

5.3C语言编译环境配置
进去搜索:

选择配置:我们首先配置的就是编译器的路径,这个时候一个下拉菜单的(肯呢个不会显示,但是你点值得会出来选项,真的,我当时想要修改也觉得懵懵的,这个难道是要让我去手写路径吗,觉得这个是可以选择的,实际上这个就是可以选择的),这个根据大家的安装位置进行选择,因为我的是先安装在了D盘里面,后来拷贝到了C盘大根目录下面,所以这个显示的C/D盘都有这个gcc,因此这个需要我们根据实际情况进行配置,在那个盘里面就选哪个盘;

选择对应的模式:这个完成的话配置就结束了;这个时候左边的栏目里面会生成一些文件,这个就是我们进配置之后的效果;

6.创建执行文件
我们点击终端里面的配置任务选项(这个终端位置因为视图的原因是可以调整的):

我们选择对应的选项点击打开:

出现的这个.json文件就是用来进行代码编译任务的,这个里面有一些相关的设置,我们不了解也没有影响;

7.编译运行过程
终端里面选择:运行生成任务:

点击mingw对应的目录里面的文件:

这个时候左边就会生成一个exe的可执行程序,这个就是我们想要运行的可执行程序:

ctrl+'(一个字符,esc键下面)这个快捷键的作用就是调出来我们的vscode里面的终端,我们要在里面输入相关的指令,来运行生成的可执行程序;

输入./表示我们当前的路径下的文件,后面的就是我们生成的exe的文件名字,点击enter键,就可以执行我们的C语言代码,生成运行的结果了;

8.写其他的代码的解决方案一
在原有的文件夹下面去创建新的文件:例如我们添加一个add.c文件

这个时候侧栏里面就会增加一个新的exe文件,我们还是在终端里面对于这个进行执行:

如果你晕倒下面的问题,可以使用点击垃圾桶标识之后再点击快捷键调出来这个终端窗口,输入运行的指令,就可以执行这个文件;

9.写其他的代码的解决方案二
创建新的文件夹去进行代码的编写:
我们创建一个新的文件夹,然后在这个vscode里面打开文件夹,这个时候我们不需要像上面那样进行繁琐的操作,而是直接复用即可;

进入我们的上次编写的文件:

把这个里面的.vscode文件拷贝到新的文件夹里面,这个时候在vscode里面刷新一下就可以按照正常的终端----运行-----敲入指令----enter键的方式,运行我们的程序了;

10.同时编译多个.c文件
10.1对于内容的修改
我们下面就是用一个简单的函数调用完成这个多文件过程展示:


这个还是把原来的.code文件进行拷贝到我们的目录下面,这个时候因为我们是多文件系统,多医药对于这个里面的一些内容进行修改;

10.2文件内容


10.3重新编译

11.C++环境配置和运行(和C基本一样)




生成可执行exe文件:

这个在选择编译选项的时候就是使用的g++进行编译的:同样的方法运行程序;

12.vscode调试过程
这个过程还是有点麻烦的,我尽量介绍的详细一些:首先就是点击左边栏的圈1,调出之后点击创建launch.json文件
12.1创建launch文件

点击之后选择gdb选项;

12.2添加配置
点击gdb之后点击右下角的添加配置:

选择gdb启动,这个时候就会给我们的launch里面添加一些新的内容

12.3效果图展示
添加配置之后的效果

12.4对于launch文件的修改
因为这个是进行调试,所以我们要选择对应的被调试的文件:
左边的json就是我们之前里面的那个.vscode里面的json文件,右边的就是launch文件,我们需要把我们的对应的被调试的test.cpp文件的json文件里面的内容贴到launch文件的对应位置去:

因为我们的json文件属于test.cpp文件读独属于的,我们把这个里面的东西给launch文件,就是为了让这个json文件知道要对于谁进行编译;

对于路径的修改:这个修改的是什么呢,


注意注意:这个地方还要进行一些修改欧:

开始调试:

调试效果图:

左边有监视窗口,变量窗口等等,同学们可以自行研究;
相关文章:
vscode的C/C++环境配置和调试技巧
目录 1.背景 2.下载编译器 3.配置环境变量 4.安装C/C插件 5.写C语言代码并且编译成功 5.1文件操作 5.2对于两个窗口的解释 5.3C语言编译环境配置 6.创建执行文件 7.编译运行过程 8.写其他的代码的解决方案一 9.写其他的代码的解决方案二 10.同时编译多个.c文件 10…...
Python制作《扫雷》游戏-附源码,轻松看懂,简单易学
今天介绍另一款经典小游戏,扫雷,这个应该是很多人windows电脑里玩的最多的游戏了,乐趣很多,而且还有一定的技术含量在里面,今天我们就来通过python实现这个小游戏。 创建扫雷文件 打开pycharm,创建一个名…...
8路VBO转HDMI2.0支持4K60频率ITE6265芯片方案心得分享
在此之前,有人找到我这边询问能不能将智能电视主板改成机顶盒,将VBO信号转换输出位HDMI进行投屏,具体应用奇奇怪怪!但是奈何是甲方大佬。认命照做。从网上也有搜索了解过这类芯片,发现资料很少,所以有了这篇…...
【问题解决3】【已解决】Cannot determine path to‘tools.jar‘libraryfor17
前几天在IDEA运行JAVA项目时,出现这个报错。 这是因为是这个笔记本上安装的IDEA版本是“IntelliJ IDEA 2020.3.1”,与JDK17版本不兼容,这种情况下要想使得IDEA版本与JDK版本兼容,就需要升级IDEA版本或者使用JDK较低版本ÿ…...
基于Spring Boot的高效宠物购物平台
✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…...
【Vue3】路由基础
【Vue3】路由基础 背景简介开发环境开发步骤及源码总结 背景 随着年龄的增长,很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来,技术出身的人总是很难放下一些执念,遂将这些知识整理成文,以纪念曾经努力学习奋斗的日子。本…...
掌握网络数据的钥匙:Python Requests-HTML库深度解析
文章目录 掌握网络数据的钥匙:Python Requests-HTML库深度解析背景:为何选择Requests-HTML?什么是Requests-HTML?如何安装Requests-HTML?5个简单库函数的使用方法3个场景下库的使用示例常见Bug及解决方案总结 掌握网络…...
网络安全: 模型的脆弱性,鲁棒性和隐私性
在网络安全领域,通常描述模型安全性时,会提到以下三个特性: 脆弱性(Vulnerability):指模型在某些情况下容易受到攻击或被利用的弱点。例如,模型可能对对抗性攻击或梯度泄露攻击敏感。 鲁棒性&a…...
【go语言】go-webview2用法(持续更新)
文章目录 背景核心接口和方法扩展接口遗憾的是 背景 目前为止,已经有很多优秀的electron应用。但其特点也很明显:使用htmlcssjs构建的布局很精致,但是体积不容小觑(最新版electron-egg打包出来的程序已经300MB)。 vs…...
KNN 图像识别
KNN(K-Nearest Neighbors,K最近邻)算法是一种简单而有效的分类算法,也可以用于图像识别。它的基本思想是通过计算样本之间的距离,将待分类的样本归为其在训练集中最相近的K个样本所属的类别中最常见的类别 1. 准备工作…...
基于STM32和云平台的花卉养护系统设计(微信小程序)(209)
文章目录 一、前言1.1 项目介绍【1】项目功能介绍【2】设计实现的功能【3】项目硬件模块组成1.2 设计思路【1】整体设计思路【2】ESP8266工作模式配置1.3 项目开发背景【1】选题的意义【2】可行性分析【3】参考文献【4】摘要【5】选题背景【6】国内外技术发展现状1.4 开发工具的…...
编程语言进化史
编程语言多到你想象不到。 图片来自: 程序设计语言概念 发展历史 自从1946年冯诺依曼原理被提出,计算机数据和指令是通过二进制形式以及后来的汇编语言(二进制助记符),但依然没有改变容易出错的本质。1951年Rutishauser提出的用编译程序实现高级语言的思…...
vuex的原理和使用方法
简介 Vuex 是 Vue.js 应用的状态管理模式,它为应用内的所有组件提供集中式的状态(数据)管理。可以帮我们管理 Vue 通用的数据 (多组件共享的数据)。 Vuex的构成 state:state 是 Vuex 的数据中心,也就是说state是用来…...
(javaweb)SpringBootWeb案例(毕业设计)案例--文件上传
1.简介 前端程序和服务端程序 对于前端 html文件放在static目录下 location---文件提交的位置 右键--copy value -------------c盘目录下 2.本地上传--文件存储 1. 2. 使用uuid:保证文件名是唯一的 此时 并没有文件的拓展名--所以需要---写后缀 用字符串截取 此时图…...
数据库之存储过程和函数
目录 一、存储过程和函数概述 二、创建并调用存储过程和函数 1.创建存储过程 2.创建存储函数 3.调用存储过程和函数 三、关于存储过程和函数的表达式 1.变量 1.变量的分类 2.在存储过程和函数中应用变量 2.定义条件和处理程序 1.定义条件 2.定义处理程序 3.游标的…...
《SPSS零基础入门教程》学习笔记——02.数据管理
文章目录 2.1 连续变量的离散化2.2 自动重编码、编秩与数值计数2.3 几个常用过程2.4 多个数据文件的操作2.5 数据字典2.6 数据核查(1)数据验证模块(2)数据检验 2.7 数据准备 计算新变量(转换 -> 计算变量࿰…...
嵌入式软件的一些常用调试测试方法
嵌入式软件的仿真调试测试是确保软件质量和功能正确性的关键步骤。以下是几种常见的仿真调试测试方式: 1.集成开发环境(IDE)调试: 使用IDE(如IAR EWARM、Keil MDK、Eclipse等)内置的调试器进行断点设置、单…...
Android T about screen rotation(二)
需求:客户因为模具问题,屏幕方向需要动态的变动.(方向: 0 , 90 , 180 ,270) 拆分:设备开机过程中图像显示可分为三个阶段,boot logo(1)->kernel logo(2),这一段的处理需要驱动层,所以暂时忽略. 开机动画 Bootanimation(3)阶段 和 Home Launcher应用显示(4)阶段是需要修改的…...
qt反射之类反射、方法反射、字段反射
话不多说,直接上代码: main.cpp: #include < QCoreApplication > #include “fstudent.h” #include “manage.h” int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); //注册类型 qRegisterMetaType(“FStudent”); Manage m…...
服务器数据恢复—raid5阵列离线硬盘强制上线失败如何恢复数据?
服务器数据恢复环境: 某品牌2850服务器上有一组由6块SCSI硬盘组建的raid5磁盘阵列,上层操作系统为Redhat linuxext3文件系统。 服务器故障&初检: 服务器在运行过程中突然瘫痪,管理员对服务器中的raid进行检查后发现有两块硬盘…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...
面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...
MySQL:分区的基本使用
目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...
日常一水C
多态 言简意赅:就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过,当子类和父类的函数名相同时,会隐藏父类的同名函数转而调用子类的同名函数,如果要调用父类的同名函数,那么就需要对父类进行引用&#…...
通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器
拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件: 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...
Mac flutter环境搭建
一、下载flutter sdk 制作 Android 应用 | Flutter 中文文档 - Flutter 中文开发者网站 - Flutter 1、查看mac电脑处理器选择sdk 2、解压 unzip ~/Downloads/flutter_macos_arm64_3.32.2-stable.zip \ -d ~/development/ 3、添加环境变量 命令行打开配置环境变量文件 ope…...
MeanFlow:何凯明新作,单步去噪图像生成新SOTA
1.简介 这篇文章介绍了一种名为MeanFlow的新型生成模型框架,旨在通过单步生成过程高效地将先验分布转换为数据分布。文章的核心创新在于引入了平均速度的概念,这一概念的引入使得模型能够通过单次函数评估完成从先验分布到数据分布的转换,显…...
Vue.js教学第二十一章:vue实战项目二,个人博客搭建
基于 Vue 的个人博客网站搭建 摘要: 随着前端技术的不断发展,Vue 作为一种轻量级、高效的前端框架,为个人博客网站的搭建提供了极大的便利。本文详细介绍了基于 Vue 搭建个人博客网站的全过程,包括项目背景、技术选型、项目架构设计、功能模块实现、性能优化与测试等方面。…...
CCF 开源发展委员会 “开源高校行“ 暨红山开源 + OpenAtom openKylin 高校行活动在西安四所高校成功举办
点击蓝字 关注我们 CCF Opensource Development Committee CCF开源高校行 暨红山开源 openKylin 高校行 西安站 5 月 26 日至 28 日,CCF 开源发展委员会 "开源高校行" 暨红山开源 OpenAtom openKylin 高校行活动在西安四所高校(西安交通大学…...
