【开发工具 - vscode】vscode配置C/C++运行环境

news2024/11/25 2:50:04

【开发工具 - VSCode】vscode配置C/C++环境

  • 准备工作
    • 第一步 下载vscode
    • 第二步 下载mingw
    • 第三步 将mingw添加至系统变量中
    • 第四步 打开VsCode安装一下必要的插件
  • 正式开始配置
    • 第一步 新建个存放C/C++文件的文件夹,并新建个cpp文件
    • 配置方法一 借助run code 插件的配置方法 - 简单
      • 问题1:run code运行程序时,无法向终端中输入数据
      • 问题2:run code执行代码出现gcc(或g++) :error; no such file or directory的错误
        • 原因分析
        • 解决办法
          • 第一步 打开code runner扩展设置
          • 第二步 进入指令设置界面
          • 第三步 修改编译指令
    • 配置方法二 使用gdb调试的配置方法 - 复杂
      • 第一步 配置编辑器环境
      • 第二步 配置task.json 编译任务
      • 第三步 配置launch.json 调试任务
      • 问题1 为什么运行程序后没有输出结果
      • 进阶 设置成经典的弹出黑窗运行程序的形式(在系统终端中运行程序)
    • 配置方法三 使用windows调试 - 比较复杂
      • 第一步 配置编辑器环境
      • 第二步 配置task.json 编译任务
      • 第三步 配置launch.json 调试任务
    • 通用问题
      • 问题一:vscode终端出现乱码

准备工作

在 Vscode 里配置C/C++运行环境,首先,需要下载 C/C++ 的开发环境,然后将 C/C++ 的开发环境添加至系统变量中。

第一步 下载vscode

VsCode大家应该都会下,这里就不提供VsCode的下载与安装教程了

第二步 下载mingw

这里采用mingw作为 C/C++ 开发环境,官网链接如下
官网链接:MinGW官网
在这里插入图片描述

下载完成后我们会得到这样一个安装程序

在这里插入图片描述

双击打开

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
请添加图片描述

然后我们找到mingw的安装文件夹

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

依次输入

  • mingw-get install gcc
  • mingw-get install g++
  • mingw-get install gdb

注意:因为提供下载服务的服务器在国外,因此下载会比较慢,甚至一些内容可能还下载不了(如gdb.exe),如果你不想使用gdb调试的话,gdb.exe不是必须要下载的,(run code是直接编译运行的,不需要gdb调试器)

如果要使用 gdb调试器,那么请参考评论区里的大佬提供的msys2安装方法安装最新版
或者百度网盘进行下载(别问为什么用百度网盘,因为其他网盘都存满了T_T)
这里提供的是8.1.0的版本(最新版11.2,截止2022/11/14号)
链接:MinGW 8.1.0版
提取码:Suif
压缩包大小 129.41MB,用下百度网盘的限时体验30s(如果还有的话),很快就下好了
亲测,8.1.0版本完全支持C++17及以下标准。

在这里插入图片描述
在这里插入图片描述

然后mingw就下载完成了

第三步 将mingw添加至系统变量中

这一步就是告诉电脑,可以在哪个文件夹里找到 C/C++ 的运行环境

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这样我们的系统环境就配置完成了
我们可以来检验一下是否配置正确
按住 win + r 打开以下界面

在这里插入图片描述

输入 cmd, 然后点确定
在这里插入图片描述
依次输入
gcc -v
g++ -v
gdb -v
看看是否显示正常结果
在这里插入图片描述在这里插入图片描述
结果正常显示就表示系统环境配置正确,这时候建议重启一下电脑(当然也可以不重启)

第四步 打开VsCode安装一下必要的插件

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

我们的vscode配置 C/C++ 的准备工作就完成了

正式开始配置

第一步 新建个存放C/C++文件的文件夹,并新建个cpp文件

在这里插入图片描述
在这里插入图片描述

我们在vscode中打开那个文件夹

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

然后我们就可以开始配置环境了

注意:配置的环境只适用于这个大文件夹内

配置方法一 借助run code 插件的配置方法 - 简单

这是最简单的一种配置方法,对于初学者或者很少接触计算机的人来说也是最为友好的一种方法
这种方法需要用到一个插件, run code,我们先打开扩展商店安装一下run code插件
在这里插入图片描述
安装完成了后,我们会发现右键多了个run code

在这里插入图片描述

直接点run code就能够编译运行程序了。

问题1:run code运行程序时,无法向终端中输入数据

由于run code的设置问题,有些同学使用run code运行程序可能得到输出结果,而不能直接在vscode中向程序中输入内容,所以我们还需要一些设置来调整一下run code。

我们按 ctrl + ,进入设置(ctrl + 逗号)或者点击文件 -> 首选项 -> 设置

在这里插入图片描述
在这里插入图片描述

重启一下vscode,这样我们就可以在vscode中向程序输入内容了

问题2:run code执行代码出现gcc(或g++) :error; no such file or directory的错误

原因分析

这个错误可能是编译命令执行前没有进入指定的文件夹前导致的,所以我们加一个cd 目标文件夹路径即可

解决办法

第一步 打开code runner扩展设置

在这里插入图片描述

第二步 进入指令设置界面

在这里插入图片描述

第三步 修改编译指令

在这里插入图片描述

        "c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
        "cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",

配置方法二 使用gdb调试的配置方法 - 复杂

如果想使用gdb调试器调试程序的话,则需使用该种方法

第一步 配置编辑器环境

我们按住 ctrl + shift + p 打开命令面板 或者 点击查看 -> 命令面板

在这里插入图片描述
在这里插入图片描述

我们配置一下编译器路径,以及c/c++标准

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

然后关闭这个界面,我们会发现CppProject文件夹中多了一个.vscode文件夹

在这里插入图片描述

第二步 配置task.json 编译任务

同样,我们按住 ctrl + shift + p 进入命令面板 或 点击 查看 -> 命令面板

在这里插入图片描述在这里插入图片描述

此时我们会发现.vscode文件夹中多了tasks.json

简单地介绍一下tasks.json中需要注意的内容:

  • label : 编译任务名称,在之后配置launch.json时我们可以通过编译任务名称来调用编译任务。
  • command :编译器路径,编译任务会调用编译器,请确保路径正确。
    args :传输给编译器的命令,通过设置该项内容,可以设置生成exe程序的路径

在这里插入图片描述

第三步 配置launch.json 调试任务

因为现在的C/C++插件不会自动生成launch.json,因此launch.json需要我们自己编写,在.vscode文件夹内新建一个launch.json文件

在这里插入图片描述

我们会发现,这里有个添加配置

在这里插入图片描述

我们点添加配置,选择gdb启动

在这里插入图片描述

我们需要修改3个地方

第一处:program - 可执行程序路径

  • 该项内容表示调用的程序路径,其值应和task.json中生成的exe程序路径相同,否则会由于无法找到可执行的程序而报错

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第二处:miDebuggerPath - 自定义调试器路径

  • 该项值表示gdb调试器的路径,其值应该与自己想用的gdb调试器路径一致,否则提示找不到gdb调试器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第三处:preLaunchTask - 调试之前执行的编译任务

  • 该项值表示启动gdb调试器之前使用的编译任务,其值等于task.json中的label。
  • 该项内容并不会自动生成,因此需我们手动编写。

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

保存,重启一下编辑器,我们就可以按F5调试程序了

注意:任何文件做出更改后都需要保存,新内容才会生效,我们可以按 ctrl + s 快速保存文件

问题1 为什么运行程序后没有输出结果

问:为什么按F5后出现这个报错信息,没有输出结果

在这里插入图片描述

答:这并不是报错信息,而是编译调试命令,输出的结果在调试控制台中显示。

在这里插入图片描述

进阶 设置成经典的弹出黑窗运行程序的形式(在系统终端中运行程序)

有的小伙伴可能觉得调试控制台不太好用,想要vscode编译运行c/c++程序时弹出终端,在终端中运行程序,这点其实也很简单,我们只需要改变launch.json中的 program 和 args 中的内容,然后设置一下黑窗弹出即可。

问:为什么不设置成在vscode内置终端中运行程序?
答:vscode使用gdb调试不提供在vscode内置终端中运行程序的配置项。

  • 如果想要设置成在vscode内置终端中运行程序,请参考配置方法一或配置方法三

注意:使用系统终端(cmd)运行程序无法使用断点调试,所以请酌情配置

像我这种用vscode写写算法题目的,就不太需要断点,所以配置成弹出黑窗的形式更好些。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

我的program 和 args 中的内容:

        "program": "C:\\Windows\\System32\\cmd.exe",
        "args": [
            "/c",
            "${fileDirname}\\build\\${fileBasenameNoExtension}.exe", // 更改这项内容为task.json中生成的exe程序路径就好
            "&",
            "pause"
        ],

完成后的效果
在这里插入图片描述

配置方法三 使用windows调试 - 比较复杂

有的小伙伴不想用run code,但是又想达到run code那样能在vscode内置终端中执行程序的效果,可以尝试下使用windows调试。(实际上就是只编译运行程序,没有任何辅助调试程序的功能)

注意:该配置方法无法使用断点调试。

第一步 配置编辑器环境

同配置方法二中的第一步

第二步 配置task.json 编译任务

同配置方法二中的第二步

第三步 配置launch.json 调试任务

先自建一个lanuch.json文件(参考配置方法二中的第三步)

  • 如果lanuch.json中有内容的话,先把configurations中的内容注释掉或者删除掉
  • 全选configurations中的内容,按下快捷键ctrl + / 即可快速注释选中内容。

在这里插入图片描述

然后我们点击添加配置,选择windows启动

在这里插入图片描述

在这里插入图片描述

我们只需要修改两项内容即可

第一处:program - 可执行程序路径

  • 该项内容表示调用的程序路径,其值应和task.json中生成的exe程序路径相同,否则会由于无法找到可执行的程序而报错

第二处:preLaunchTask - 调试之前执行的编译任务

  • 该项值表示启动gdb调试器之前使用的编译任务,其值等于task.json中的label。
  • 该项内容并不会自动生成,因此需我们手动编写。

在这里插入图片描述
在这里插入图片描述

注意配置项: console - 启动调试目标的位置

  • 通过更改该项的值,我们可以自由地切换在系统终端中运行程序还是在vscode终端中运行程序
  • 该项值为 externalTerminal 则是在系统终端中运行程序
  • 该项值为 integratedTerminal 则是在vscode终端中运行程序

在这里插入图片描述

我们把该项值改为 integratedTerminal 即可在vscode终端中运行程序

在这里插入图片描述

最终效果:

在这里插入图片描述

通用问题

问题一:vscode终端出现乱码

问题分析

因为Vscode默认编码是UTF-8,但在中国地区下的windows系统终端默认编码是GBK,所以会出现编码问题(可以在终端中输入chcp指令查看一下编码)

在这里插入图片描述

这里显示的是936就是GBK编码

解决方案

我们只需要更改以下编辑器编码即可
点击 文件 -> 首选项 -> 设置 或按 ctrl + , 快捷键打开设置
在上方搜索框中搜索Encoding
找到Files:Encoding,改为GBK(全称:Simplified Chinese)编码即可
然后关闭vscode,重进一下就好了。

注意:编辑器编码更改后,原本正常显示的字符可能会变为乱码

在这里插入图片描述

全篇结束,感谢阅读!如果有任何疑问可以评论区留言(因为水平有限,有些问题不一定能解答哈)!

编辑器插件推荐:

  • GitHub Theme:主题插件,本文中所展示的编辑器主题,Github Light纯白看起来非常的舒适。
  • vscode-icons:图标插件,本文中所展示的图标,有了图标,侧边栏看起来鲜活些。
  • codeSnap:工具插件,一件生成代码截图,用来分享代码,非常的nice。

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

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

相关文章

c语言平方(c语言平方怎么打)

C语言中怎么求平方 a^6 是a和6的异或,并不是5的6次幂。 你的程序会如下计算: 5是101 ,6是110,你的答案你一定是011,也就是3~C语言中^是指抑或运算符,不是求幂的。你要求平方就 ba*a;6次方就乘6次。#include…

java调用chatgpt接口,实现专属于自己的人工智能助手

文章目录 前言导包基本说明请求参数响应参数创建请求和响应的VO类 代码编写使用最后说明 前言 今天突然突发奇想,就想要用java来调用chatget的接口,实现自己的聊天机器人,但是网上找文章,属实是少的可怜(可能是不让发吧)。找到了…

Unity鼠标带动物体运动的三种方法

目录 第一种:物体跟随鼠标移动。 第二种:鼠标拖动物体运动。 第三种:鼠标点到哪,物体运动到哪。 第一种:物体跟随鼠标移动。 描述:鼠标左键点击物体,将物体拾起,松开鼠标左键&…

每日一练蓝桥杯C语言:2020年真题题集(B组)

在这里我给大家推荐一款不错刷算法学习网站:点击这处链接牛客网;牛客网作为国内内容超级丰富的 IT 题库,各种东西看的我眼花缭乱,题库面试学习求职讨论大厂内推等等服务,堪称"互联网求职神器"。它好就好在不…

MySQL(九):MVCC能否解决幻读问题

尺有所短,寸有所长;不忘初心,方得始终。 请关注公众号:星河之码 幻读【前后多次读取,数据总量不一致】 同一个事务里面连续执行两次同样的sql语句,可能导致不同结果的问题,第二次sql语句可能会返…

CSS3动画属性 animation详解(看完就会)

CSS3动画属性 animation 文章包含个人理解错误请指出 往期文章 【css高级】变量详解 轮播图swiper框架的基本使用【Transform3D】转换详解(看完就会)【css动画】移动的小车 【CSS3】 float浮动与position定位常见问题(个人笔记&#xff09…

MySQL入门安装(一步一图)

♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️夕阳下,是最美的绽放&#xff0…

三极管工作原理介绍(动画图解)

三极管BJT 各位社区的小伙伴们大家好,相信大家也像我一样,因为上学的时候学过,但是呢,出社会不怎么用,久而久之就忘了,今天来给大家巩固一下,我对三极管的通俗易懂的工作原理介绍! 半…

怎样提高报表呈现的性能

报表的性能很重要,是一个总被谈及的问题,跑的慢的报表用户体验恶劣,无法忍受。解决这些慢的性能问题,也成了项目方和工程师头疼的事情。一出状况,就得安排技术好的,能力强的工程师去救火,本来利…

『赠书活动 | 第二期』《元宇宙Ⅱ:图解元技术区块链、元资产与Web3.0、元人与理想国(全三册)》

💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! 『赠书活动 | 第二期』 本期书籍:《元宇宙Ⅱ:图解元技术区块链、元资产与Web3.0、元人与理想国》 赠书规则:评论区&…

齐全且实用的MySQL函数使用大全

目录 一、MySQL函数介绍 二、MySQL函数分类 (一)单行函数 ①字符串函数 ②数学函数 ③日期函数 ④流程控制函数 ⑤系统信息函数 ⑥其他函数 (二)聚合函数 三、函数使用示例 (一)字符函数 ①le…

【K8S系列】深入解析etcd

序言 时间永远是旁观者,所有的过程和结果,都需要我们自己去承担。 文章标记颜色说明: 黄色:重要标题红色:用来标记结论绿色:用来标记一级论点蓝色:用来标记二级论点 Kubernetes (k8s) 是一个容器…

WeIdentity智能合约源码分析

WeIdentity智能合约 介绍 本文结合WeIdentity智能合约文档对其源码进行阅读分析。当前,WeIdentity合约层面的工作目标主要包括两部分: WeIdentity DID智能合约,负责链上ID体系建立,具体包括生成DID(Distributed IDe…

【C++】vector类详细总结(包括vector二维数组)(持续更新中)

目录 一、vector的初始化(9种) 二、vector的访问和遍历 2.1 访问(3种) (1)使用下标运算符[]访问和修改 (2)使用迭代器访问 (3)使用at()函数访问 &#…

Spring Boot配置多数据源的四种方式

1、导读 在日常开发中我们都是以单个数据库进行开发,在小型项目中是完全能够满足需求的。 但是,当我们牵扯到像淘宝、京东这样的大型项目的时候,单个数据库就难以承受用户的CRUD操作。 那么此时,我们就需要使用多个数据源进行读写…

centos上使用yum安装redis

使用yum install -y redis时报错,没有找到安装包 解决办法: 下载fedora的epel仓库,yum添加epel源:执行 yum install epel-release 回车 再次:yum install redis 回车 开启redis服务 service redis star…

C语言设计扫雷(保姆级教学)

目录 引入: 游戏思路与逻辑: 游戏具体实现过程 整个程序的大体逻辑: 游戏的执行逻辑: game.h头文件内容: 具体函数讲解 menu(菜单函数) Initboard(初始化棋盘函数&#xff09…

Ubuntu 22.04安装Cuda11.7和cudnn8.6

这篇文章记录了如何在Ubuntu22.04上安装CUDA11.7和cudnn8.6。按照步骤理应可以安装成功。如果还有问题,可以留言。 安装显卡驱动 打开‘软件和更新。 点击附加驱动安装显卡驱动 如果已经安装显卡驱动,请忽略上面的步骤。 安装gcc 新安装的Ubuntu22…

微软 New Bing AI 申请与使用保姆级教程(免魔法)

本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问。 大家好,我是小彭。 最近的 AI 技术实在火爆,从 OpenAI 的 ChatGPT,到微软的 New Bing,再到百度的文心一言,说明 AI …

[408] cache与主存的映射部分概念

涉及:基本理解 (防止误解映射规则cache 与 主存 的 "地址"构成主存块、cache块cache容量、cache的总容量有关计算的一些刁难名词不涉及:cache 与 主存映射规则基本理解:  首先我们需要明确的是我们之后针对的位数都是针对的 地址. 与实际的存储的 (01) 二进制无关. …