当前位置: 首页 > news >正文

VSCode配置C/C++环境

(1).配置编译器
接下来配置编译器路径,按快捷键Ctrl+Shift+P调出命令面板,输入C/C++,选择“Edit Configurations(UI)”进入配置。这里配置两个选项: - 编译器路径:D:/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/g++.exe

这里的路径根据大家自己安装的Mingw编译器位置和配置的环境变量位置所决定。
IntelliSense 模式:gcc-x64
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

配置完成后,此时在侧边栏可以发现多了一个.vscode文件夹,并且里面有一个c_cpp_properties.json文件,内容如下,说明上述配置成功。现在可以通过Ctrl+<`快捷键打开内置终端并进行编译运行了。

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            //此处是编译器路径,以后可直接在此修改
            "compilerPath": "D:/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/g++.exe",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "gcc-x64"
        }
    ],
    "version": 4
}

在这里插入图片描述
在这里插入图片描述
(2).配置构建任务
接下来,创建一个tasks.json文件来告诉VS Code如何构建(编译)程序。该任务将调用g++编译器基于源代码创建可执行文件。 按快捷键Ctrl+Shift+P调出命令面板,输入tasks,选择“Tasks:Configure Default Build Task”:
在这里插入图片描述
再选择“C/C++: g++.exe build active file”:
在这里插入图片描述
此时会出现一个名为tasks.json的配置文件,内容如下:

{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
“version”: “2.0.0”,
“tasks”: [
{
“type”: “shell”,
“label”: “g++.exe build active file”,//任务的名字,就是刚才在命令面板中选择的时候所看到的,可以自己设置

         "command": "D:/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/g++.exe",
            "args": [//编译时候的参数
                "-g",//添加gdb调试选项
                "${file}",
                "-o",//指定生成可执行文件的名称
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "D:/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true//表示快捷键Ctrl+Shift+B可以运行该任务
            }
        }
    ]
}

在这里插入图片描述
(3).配置调试设置
这里主要是为了在.vscode文件夹中产生一个launch.json文件,用来配置调试的相关信息。点击菜单栏的Debug–>Start Debugging:
在这里插入图片描述
选择C++(GDB/LLDB):
在这里插入图片描述
紧接着会产生一个launch.json的文件:在这里插入图片描述
如果是在编写好的c++代码文件页面进行上述过程,会一直报"Unable to create ‘launch.json’ file inside the ‘.vscode’ folder (Cannot read property ‘name’ of undefined)."的错误,网上也没有找到相关的解决办法,但如果在之前已经创建好的json文件页面进行创建launch.json文件的过程,是可以正常进行的。
如果配置完仍不可正常运行,可以直接复制配置文件中的内容,
launch.json

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    
    "version": "0.2.0",
    "configurations": [
        
    {
             "name": "g++.exe build and debug active file",
             "type": "cppdbg",
             "request": "launch",
             "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
             "args": [],
             "stopAtEntry": false,
             "cwd": "${workspaceFolder}",
             "environment": [],
             "externalConsole": true,      //修改此项,让其弹出终端
             "MIMode": "gdb",
             "miDebuggerPath": "E:\\MinGW\\bin\\gdb.exe",
             "setupCommands": [
                 {
                     "description": "Enable pretty-printing for gdb",
                     "text": "-enable-pretty-printing",
                     "ignoreFailures": true
                 }
             ],
             "preLaunchTask": "task g++" //修改此项
         }  


    ]
}

注:launch.json文件中preLaunchTask的值要和task.json里的label值一致
建议大家配置成功后,将.vscode文件夹备份一份,以后需要的时候直接复制即可,不用再花时间进行配置了。

相关文章:

  • 芒果改进YOLOv7系列:超越ConvNeXt结构,原创结合Conv2Former改进结构,Transformer 风格的卷积网络视觉基线模型,高效涨点
  • Opencv调参神器——trackBar控件
  • 自动驾驶环境感知——视觉传感器技术
  • 详解Vue PC端如何实现扫码登录功能
  • Spring事务、事务隔离级别、事务传播机制
  • 前端图片压缩方案及代码实现
  • layui框架学习(1:布局)
  • ArrayList扩容机制~
  • 数据挖掘,计算机网络、操作系统刷题笔记36
  • 如何在IDEA中使用Maven构建Java项目?Maven的使用详细解读
  • 【stl -- 常用算法】
  • python图像处理(图像缩放)
  • 电商项目之同一笔单多次收款成功
  • OpenFeign总结
  • 【Linux】基础IO --- 系统级文件接口、文件描述符表、文件控制块、fd分配规则、重定向…
  • 分享的文章《人生如棋》
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • es6--symbol
  • extjs4学习之配置
  • JAVA并发编程--1.基础概念
  • Java多线程(4):使用线程池执行定时任务
  • markdown编辑器简评
  • MQ框架的比较
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • Python3爬取英雄联盟英雄皮肤大图
  • React Native移动开发实战-3-实现页面间的数据传递
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 安卓应用性能调试和优化经验分享
  • 初识 beanstalkd
  • 聚类分析——Kmeans
  • 入手阿里云新服务器的部署NODE
  • 设计模式走一遍---观察者模式
  • 深度学习中的信息论知识详解
  • 一天一个设计模式之JS实现——适配器模式
  • 追踪解析 FutureTask 源码
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ​卜东波研究员:高观点下的少儿计算思维
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • (02)Hive SQL编译成MapReduce任务的过程
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (ZT)一个美国文科博士的YardLife
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (附源码)计算机毕业设计大学生兼职系统
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (原)Matlab的svmtrain和svmclassify
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • (转)四层和七层负载均衡的区别
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]