vscode的C/C++环境配置和调试技巧

news2024/11/16 3:40:40

目录

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.neticon-default.png?t=N7T8https://sourceforge.net/projects/mingw-w64/

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

3.配置环境变量

配置环境变量可以让我们在命令行里面进行操作,而且可以避免我们后面出现的很多的问题,就是把我们的bin路径(bin在我们的那个解压的文件里,一般是第一个)添加到环境变量里面去(这个只要配置过一次就熟悉了,我之前介绍这个qt的那个时候就介绍过这个过程,详细信息可以去看那个教程,新手还是了解一下最好);

Qt相关安装教程-CSDN博客icon-default.png?t=N7T8https://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文件知道要对于谁进行编译;

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

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

开始调试:

调试效果图:

左边有监视窗口,变量窗口等等,同学们可以自行研究;

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

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

相关文章

Qt 中实现异步散列器

【写在前面】 在很多工作中,我们需要计算数据或者文件的散列值,例如登录或下载文件。 而在 Qt 中,负责这项工作的类为 QCryptographicHash。 关于 QCryptographicHash: QCryptographicHash 是 Qt 框架中提供的一个用于生成加密散列…

【系统维护】Dll文件修复工具使用教程,Windows系统必备!

一、dll文件是什么 dll文件是是一种Windows操作系统下的可执行文件格式,包含可由多个程序同时使用的代码和数据的文件,它的主要作用是实现代码和数据的共享,从而节省内存和硬盘空间,并提高程序的性能和可维护性 二、如何解决dll文…

刚刚,模糊测试平台SFuzz受到行业认可

近日,中国网络安全产业联盟(CCIA)正式发布了“2024年网络安全优秀创新成果大赛-安全严选专题赛”评选结果,开源网安模糊测试平台SFuzz凭借重大创新能力,得到组委会认可,获本次大赛创新产品优胜奖。 2024年网…

【LeetCode面试150】——392判断子序列

博客昵称:沈小农学编程 作者简介:一名在读硕士,定期更新相关算法面试题,欢迎关注小弟! PS:哈喽!各位CSDN的uu们,我是你的小弟沈小农,希望我的文章能帮助到你。欢迎大家在…

数据结构--第八天

--哈希表 -哈希表的概念 哈希表:用散列法存储的线性表被称为哈希表,使用的函数被称为散列函数或者哈希函数,f(k)被称为散列地址或者哈希地址。。通常情况下,散列表的储存空间是一个一维数组,而哈希地址为数组的下标 -哈…

【C# WPF】Style全局样式和资源字典

1.全局样式&#xff1a; 在Window.Resource中声明一个样式&#xff0c;总体为白色&#xff0c;为了更有区分度&#xff0c;采用BasedOn这一继承方式来在保留字体和边缘设置的基础上&#xff0c;更改颜色。 <Window x:Class"WpfApp1.Window1"xmlns"http://s…

LangChain 推出 LangGraph Studio:首款用于可视化、交互和调试复杂代理应用的代理 IDE

嘿&#xff0c;听说了吗&#xff1f;Langchain最近发布了一项重大更新&#xff0c;他们推出了官方Agent IDE&#xff0c;并且免费开放了LangGraph平台。这对于AI开发者来说是个好消息&#xff0c;意味着我们现在有了更强大的工具来构建智能应用。 今天&#xff0c;我们就来分享…

CI/CD——CI持续集成实验

目录 一. 安装Docker 二. 部署Jenkins 三. 配置邮箱 四. Harbor部署 五. Nexus Repository部署 五. sonarqube安装 六. 配置Docker 七. jenkins系统配置sonarqube 八. 配置pipeline 九. 构建并集成 一. 安装Docker docker-ce镜像_docker-ce下载地址_docker-ce安装教程…

HTTP、HTTPS、SOCKS5 三种协议特点详解

一、引言 在当今数字化的世界中&#xff0c;网络通信协议扮演着至关重要的角色。HTTP、HTTPS 和 SOCKS5 是三种常见的网络协议&#xff0c;它们各自具有独特的特点和应用场景。本文将对这三种协议进行详细的分析和比较&#xff0c;帮助您更好地理解它们在网络通信中的作用。 …

vue2+OpenLayers 天地图上打点并且显示相关的信息(2)

上次是在地图上打点 这次鼠标移动在图标上面显示相关的信息 首先有两个事件 鼠标移入 和 鼠标移出事件 pointermove pointerout 鼠标放上去之前 放上去后 代码如下 <template><div class"container"><div id"vue-openlayers" class&quo…

多模态大语言模型(MMLLM)的现状、发展和潜力

1、大模型 随着ChatGPT流行&#xff0c;大模型技术正逐渐成为AI领域的热点。许多行业大佬纷纷投身于这一赛道&#xff0c;展示了大模型的独特魅力和广阔前景。 王慧文&#xff0c;前美团联合创始人&#xff0c;发起“AI英雄帖”。 李志飞&#xff0c;出门问问创始人&#xff0…

7个Agent组成的公司,7分钟完成了一个游戏的开发

来源丨投资实习所&#xff08;ID&#xff1a;startupboy&#xff09; 作者丨StartupBoy 市场对 AI Agent 的期望一直很高&#xff0c;除了各种单向任务的 Agent 外&#xff0c;之前斯坦福大学和 Google 的一项实验已经展示了由 25 个 AI Agent 自行协同运行的虚拟城镇&#x…

如何使用Zoom API创建一个会议?

一、注册一个免费的Zoom账号&#xff08;zoom.us) 二、在Zoom 应用市场&#xff08;App Marketplace)创建一个server to server 的app&#xff0c;授予创建会议的权限。 三、创建一个Zoom API的服务端程序(node.js) 1、git clone https://github.com/zoom/server-to-server-o…

Unity新输入系统 之 InputActions(输入配置文件)

本文仅作笔记学习和分享&#xff0c;不用做任何商业用途 本文包括但不限于unity官方手册&#xff0c;unity唐老狮等教程知识&#xff0c;如有不足还请斧正​ 首先你应该了解新输入系统的基本单位Unity新输入系统 之 InputAction&#xff08;输入配置文件最基本的单位&#xff0…

Python-调用pymysql库,执行插入语句

今天写了一个mysql的插入方法&#xff0c;传多条数据时报错: TypeError: not enough arguments for format string 解决:后来排查是因为调用方法是&#xff0c;用的cursor.excute()&#xff0c;导致的报错&#xff0c;改为cursor.excutemany()就插入成功了 方法调用: test.ins…

【ARM CoreLink 系列 5.5 -- CI-700 Debug trace and PMU 】

文章目录 Debug trace and PMUCI-700 Debug trace 系统概述DTC DomainDTC Domain 约束条件DTM device portsDTM FIFO BufferDTM FIFO 缓冲区特点Debug trace and PMU 本篇文章主要是介绍 CI-700中实现的 Debug Trace (DT) and Performance Monitoring Unit (PMU). CI-700 Deb…

漏洞复现-Viessmann Vitogate 远程命令执行漏洞(CVE-2023-45852)

1.漏洞描述 Viessmann Vitogate是Viessmann公司的一个智能化控制系统。 Vitogate 300 2.1.3.0版本的/cgi-bin/vitogate.cgi存在一个未经身份验证的攻击者可利用的漏洞&#xff0c;通过put方法中的ipaddr params JSON数据中的shell元字符实现绕过身份验证并执行任意命令。 2.…

c++_1

C 定义头文件 #ifndef __COMPLEX__ // 这样定义头文件&#xff0c;可以解决有些cpp在包含头文件需要的次序要求&#xff1b;也不会有重复的定义头文件 #define __COMPLEX__#endif#pragma once 是 C 预处理器指令&#xff0c;用于防止头文件被多次包含&#xff0c;从而避免头文…

C++解析和构建json(cjson使用手册)

C解析和构建json【cjson使用手册】 一、cjson下载二、cjson工程使用2.1 静态库使用2.1 源码使用&#xff08;推荐&#xff09; 三、cjson详解3.1 解析json字符串3.1.1 解析对象3.1.2 解析数组&#xff1a;方法一&#xff08;获取列表数量然后按照位置获取&#xff09;3.1.2 解析…

从专家角度看:2024年值得关注的项目文档工具

国内外主流的10款项目文档管理软件对比&#xff1a;PingCode、Worktile、禅道、Tower、飞书、Smartsheet、Jira、Notion、Wrike、Basecamp。 在项目管理的世界里&#xff0c;选择一个合适的文档管理工具可能就是成功与否的关键。众多的系统和功能看似琳琅满目&#xff0c;但这也…