【教程】VSCode配置C++环境踩坑记录

时隔一年终于在VSCode配置好了C++环境[MinGW]

  • 基础部分
  • 踩坑
    • 坑0
    • 坑1
    • 坑2
    • 坑3

基础部分

就是安装VSCode,然后再安装C++插件之类的,咱这就不罗嗦了,如果不清楚可以参考这篇文章:VSCode配置C/C++环境
毕竟解决后面一些棘手的问题更重要。

踩坑

当你按照大多数网上能搜到的普通教程配置完后,很可能会出现一些问题,一般来说都是编译程序之后,启动程序的过程中出现的问题,因此问题集中在launch.json上
这里说一下.vscode文件夹下各个文件都是干啥的

文件名功能
tasks.json(必要)告诉 VSCode 如何编译 .cpp 文件,配置后将调用 g++ 编译器基于源代码创建可执行文件
launch.json(必要)launch.json 可以使用F5使VSCode启动GDB调试器来调试程序
c_cpp_properties.json(非必要)C++插件生成的配置文件,可以实现更多控制,改变编译器的路径、C++ 标准(默认为 C++17)等等

坑0

如果遇到上面文中出现过的一直报 "Unable to create ‘launch.json’ file inside the ‘.vscode’ folder (Cannot read property ‘name’ of undefined)."这个错误 的情况,可以自己新建tasks.json,launch.json,然后往里面写入内容(参考那篇文章的内容,我自己写了一个tasks.json,注意:各自的编译器路径不一样,要把路径填写正确)

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "preLaunchTask": "C/C++: g++.exe 生成活动文件",//调试前执行的任务,就是之前配置的tasks.json中的label字段
            "type": "cppdbg",//配置类型,只能为cppdbg
            "request": "launch",//请求配置类型,可以为launch(启动)或attach(附加)
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",//调试程序的路径名称
            "args": [],//调试传递参数
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,//true显示外置的控制台窗口,false显示内置终端
            "MIMode": "gdb",
            "miDebuggerPath": "X:\\xx\\bin\\gdb.exe",// 要改成自己的路径
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

坑1

报错 “launch: program ‘xxx’ does not exist”,你需要检查一下是不是安装了C++ Runner,如果安装了就卸载掉,否则会影响启动程序
打开调试界面,你会看到"运行和调试"这的下拉选项框,应该用GDB Launch而不是C++ Runner
VSCode调试界面
仅安装一款C++插件即可,推荐应用广泛的C++工具

坑2

MinGW是不支持中文路径的,所以路径中不能有中文
否则无论你如何修改你的配置文件,例如launch.json tasks.json ,程序运行时都会报错
错误信息:No such file or directory
意思是找不到文件或路径

坑3

留意一下tasks.json中的preLaunchTask和launch.json中的label是否相同,一定要相同才行

目前我碰到的坑大概就这些,希望你也早点配置成功

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

GreatSQL通过错误日志信息判断数据库实例是如何关闭的

背景概述 在一次客户的数据库实例连接不上了,需要我们排查一下原因,通过查看数据库实例进程已经不存在了,在错误日志中没有发现其他报错信息,发现有shutdown的字样出现,怀疑是某个用户手动关闭了实例。我们通过以下测…

P1403 [AHOI2005] 约数研究

题目描述 科学家们在 Samuel 星球上的探险得到了丰富的能源储备,这使得空间站中大型计算机 Samuel II 的长时间运算成为了可能。由于在去年一年的辛苦工作取得了不错的成绩,小联被允许用 Samuel II 进行数学研究。 小联最近在研究和约数有关的问题&…

Python教程(3)——python开发工具vscode的下载与安装

Python的开发工具有很多款,很多都是非常好用的,其中vscode作为其中一款Python的开发工具,是非常轻量级的,今天我们来介绍一下vs code的下载与安装。 vscode的下载与安装 首先需要到vscode的官网,这个谷歌或者百度一下…

[Java]Set、Map、List常见实现类的特点、使用方法总结

文章目录 1、图谱2、List1、ArrayList1. 特点2. 常见方法 2、LinkedList1、特点2、常见方法 3、Vector1、特点 3、Map1、HashMap1、特点常用方法 2、TreeMap1、特点 3、LinkedHashMap1、特点 4、Set1、HashSet1 、特点2、常用方法 2、LinkedHashSet特点 3、TreeSet1、特点2、使…

Ajax详解

文章目录 1. 概述1.1 Ajax工作原理1.2 Ajax的作用1.3 同步异步 2. 原生Ajax3. Axios3.1 Axios的基本使用3.2 Axios快速入门3.3 请求方法的别名 1. 概述 Ajax 是 “Asynchronous JavaScript and XML”(异步 JavaScript 和 XML)的缩写。它是一种在无需重新…

缓存数据一致性探究

缓存数据一致性探究 缓存是一种较低成本提升系统性能的方式,自它面世第一天起就备受广大开发者的喜爱。然而正如《人月神话》中的那句经典的“没有银弹”中所说,软件工程的设计没有银弹。 就像每一次发布上线修复问题的同时,也极易引入新的问…

蓝牙资讯|三星和日企合作开发智能戒指,将与苹果直接竞争

三星提交了一系列关于可穿戴设备的商标申请,其中包括与智能戒指有关的商标。近日有媒体爆出,三星已经开始与日本印刷电路板企业Meiko合作开发一款智能戒指。据称这款戒指可能会采用Galaxy品牌,或上周申请的智能戒指商标。 目前这一项目处于前…

JavaScript入门——笔记用

JavaScript入门 变量数组常量模板字符串检测数据类型判断分支判断循环数组函数对象 与html和css不同的是js并不是一门标记语言,而是与java等相同,也是一门编程语言(实现人机交互的运行在客户端即浏览器的编程语言) JavaScript作用…

不外传秘诀| docker 快速搭建常用的服务环境

本文主要给大家介绍如何使用 docker 搭建常用的服务环境, 包括mysql,reedis,nginx,jenkins 等常用的环境,下面直接进入主题。 1、MySQL 部署 ①搜索 MySQL 镜像 docker search mysql ②拉取 MySQL 镜像 docker pull mysql:5.7 ③创建容器&#xf…

NAS 问题处理记录

在解决自动配网的过程中,突然NAS不给力,偏偏这个时间找事情。上面这两个问题,说不复杂也不复杂,主要是自己在完全远程处理,很多不方便。当然少不了师弟的助攻,很感谢我的师弟帮忙,实验室的网络不…

JMeter做http接口功能测试

1. 普通的以key-value传参的get请求 e.g. 获取用户信息 添加http请求;填写服务器域名或IP;方法选GET;填写路径;添加参数;运行并查看结果。 2. 以Json串传参的post请求 e.g. 获取用户余额 添加http请求;…

软件测试行业的困境和迷局

中国的软件测试虽然起点较高,但是软件测试的发展似乎没有想象中那么顺利。 其实每个行业除了有自身领域外,还有属于自己的“生态系统”。属于软件测试的生态系统主要包括后备软件测试人员、软件开发人员和软件管理决策者。后备软件测试人员是软件测试的…

python爬虫-获取headers(报文头)关键参数实例小记

注意!!!!某XX网站逆向实例仅作为学习案例,禁止其他个人以及团体做谋利用途!!! 第一步:请求页面,得到响应。建议首次请求时headers内容都带着,调试…

linux开机启动输入法且设置英文状态

debian,gnome桌面。fcitx5框架,四叶草输入法。 首先把fcitx5加到开机启动项,方法很多,gnome的插件“优化”里面可以添加开机启动项。 这样开机就能启动输入法,而不用再手动输入shell命令fcitx5了。 但是启动时是中…

【分布式应用】Ceph的实战应用

目录 一、创建 CephFS 文件系统 MDS 接口1.1服务端操作1)在管理节点创建 mds 服务2)查看各个节点的 mds 服务3)创建存储池,启用 ceph 文件系统4)查看mds状态,一个up,其余两个待命,目…

禁止浏览器自动填充密码功能,设置自动填充背景色。

禁止浏览器自动填充密码功能,设置自动填充背景色 1、禁止浏览器自动填充密码功能2、设置自动填充背景色(阴影效果) 1、禁止浏览器自动填充密码功能 text设置autocomplete“off” password设置 autocomplete“new-password” 两个一起设置&am…

MySQL数据库 【增删改查】

目录 一、新增 指定列插入 一次插入多个数据 二、查询 1、全列查询 2、指定列查询 3、查询字段为表达式 4、查询的时候给列名/表达式 指定别名 5、查询时去重 6、排序查询 7、条件查询 8、模糊查询 9、空值查询 10、分页查询 三、修改 四、删除 SQL 最核心…

Spring底层

配置文件 配置优先级 之前讲解过,可以用这三种方式进行配置 那如果这三种都进行了配置,那到底哪一份生效呢? 结论 优先级从大到小 properties>yml>yaml然后就是现在一般都用yml文件进行配置 其他配置方式 除了配置文件外 还有不同…

stm32读取DHT11温湿度传感器

stm32读取DHT11温湿度传感器 一.序言二.DHT11响应数据格式三.DHT11通讯过程3.1 产生起始信号3.2 读取数据03.3 读取数据1DHT11停止信号 四.代码实例4.1读取DHT11源文件4.2 读取DHT11头文件 五.结语5.1 总结整体思路5.2 对读者的期望 一.序言 我们知道DHT11是单总线协议&#x…

基于Java+SpringBoot+Vue前后端分离仓库管理系统详细设计和实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…
最新文章