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进行检查后发现有两块硬盘…...
深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...
【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
