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

vscode中如何配置c/c++环境

“批判他人总是想的太简单 剖析自己总是想的太困难”

文章目录

  • 前言
    • 文章有误敬请斧正 不胜感恩!
      • 一、准备工作
      • 二、安装 VSCode 插件
      • 三、配置 VSCode
        • 1. 配置编译任务(tasks.json)
        • 2. 配置调试器(launch.json)
      • 四、运行和调试
      • 五、常见问题与解决
  • 总结


前言

写在开始:

VS Code 是一款由微软开发的免费代码编辑器,支持多种编程语言,如 Python、JavaScript、C++、Go 等。它拥有丰富的插件市场,可以根据你的需求自由扩展功能,如语法高亮、代码补全、调试工具、Git 集成等,是开发者们的“神器”。
用VScode来写C/C++更加方便一点,不用下那么大的visualstudio.


文章有误敬请斧正 不胜感恩!

以下是本篇文章正文内容,


一、准备工作

  1. 安装 VSCode

    • 前往 VSCode 官网下载最新版本,并根据系统提示完成安装。
  2. 安装 C++ 编译器

    • Windows:推荐使用 MinGW-w64 作为 C++ 编译器。下载时选择 x86_64 版本以支持 64 位开发。

      • 安装时选择 mingw32-gcc-g++ 组件。
      • 完成安装后,将 MinGW 的 bin 目录(如 C:\mingw-w64\bin)添加到系统的环境变量 PATH 中:
        1. 打开“控制面板” -> “系统和安全” -> “系统”。
        2. 点击“高级系统设置” -> “环境变量”。
        3. 找到“系统变量”中的 Path,双击编辑,点击“新建”,然后输入 MinGW 的 bin 路径。
    • Linux:打开终端,输入以下命令安装 GCC:

      sudo apt-get update
      sudo apt-get install build-essential
      
    • macOS:在终端中输入以下命令安装 Xcode 命令行工具:

      xcode-select --install
      

二、安装 VSCode 插件

  1. C/C++ 插件

    • 打开 VSCode,点击左侧的扩展图标(或按 Ctrl+Shift+X)。
    • 搜索 C/C++,找到由 Microsoft 提供的插件,点击“安装”。
      在这里插入图片描述
  2. Code Runner 插件(可选)

    • 搜索并安装 Code Runner 插件。它可以通过右键菜单直接运行代码,是快速测试代码的好帮手。

三、配置 VSCode

VSCode 本身并没有自带的编译功能,所以我们需要设置编译和调试任务。

1. 配置编译任务(tasks.json)
  • 创建一个 C++ 文件,例如 main.cpp,写入以下简单代码:

    #include <iostream>int main() {std::cout << "Hello, World!" << std::endl;return 0;
    }
    
  • 按下 Ctrl+Shift+B,VSCode 会提示设置构建任务,选择 Create tasks.json file from template,然后选择 Others

  • 编辑生成的 tasks.json,使其看起来如下:

    {"version": "2.0.0","tasks": [{"label": "build","type": "shell","command": "g++","args": ["-g","${file}","-o","${fileDirname}/${fileBasenameNoExtension}.exe"],"group": {"kind": "build","isDefault": true},"problemMatcher": ["$gcc"],"detail": "Generated task by VS Code"}]
    }
    
  • 关键字段解释:

    • "command": "g++":使用 g++ 作为编译器。
    • "args":编译参数,-g 开启调试信息,${file} 表示当前文件,-o 用于指定输出文件名。
    • ${fileDirname}${fileBasenameNoExtension} 会自动根据当前文件路径和名称生成可执行文件。
2. 配置调试器(launch.json)
  • 按下 F5,VSCode 会提示配置调试器,选择 C++ (GDB/LLDB)

  • 在生成的 .vscode 目录下找到 launch.json 文件,修改如下:

    {"version": "0.2.0","configurations": [{"name": "g++ - 生成和调试活动文件","type": "cppdbg","request": "launch","program": "${fileDirname}/${fileBasenameNoExtension}.exe","args": [],"stopAtEntry": false,"cwd": "${fileDirname}","environment": [],"externalConsole": true,"MIMode": "gdb","setupCommands": [{"description": "启用 gdb 的漂亮打印","text": "-enable-pretty-printing","ignoreFailures": true}],"preLaunchTask": "build","miDebuggerPath": "gdb","logging": { "engineLogging": true }}]
    }
    
  • 关键字段解释:

    • "program":指定运行的可执行文件路径。
    • "miDebuggerPath": "gdb":指定调试器的路径,Windows 用户确保 gdb 已安装。
    • "preLaunchTask": "build":调试前自动执行编译任务。

四、运行和调试

  1. 编译程序
    Ctrl+Shift+B 执行编译,检查终端是否输出“成功生成”的信息。

  2. 运行程序
    在终端直接输入生成的 .exe 文件名,或通过 Code Runner 插件右键运行。

  3. 调试程序
    F5 启动调试,可以添加断点(在代码行号左侧点击),观察变量值,单步执行。

五、常见问题与解决

  1. 编译错误:找不到 g++

    • 确保 MinGW-w64 的 bin 目录已正确添加到环境变量 PATH,并重启 VSCode。
  2. 调试时无法启动 gdb

    • 检查 launch.jsonmiDebuggerPath 是否正确,或尝试指定 gdb 的完整路径。
  3. 中文字符显示乱码

    • 编译时添加参数 -fexec-charset=GBK 可以解决 Windows 下的编码问题。

总结

以上就是在 VSCode 配置 C/C++ 环境的详细步骤。配置好环境才能顺利运行 C++ 代码,
还能进行debug,跟踪程序执行的每一步。
如果遇到问题,别忘了多看看编译和调试信息,这些是解决big的关键。
祝各位大佬编程愉快!


相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C++ Linux多线程同步通信-信号量
  • Linux系统应用之知识补充——OpenEuler(欧拉)的安装和基础配置
  • linux-centos 设置系统时间
  • python selenium网页操作
  • GlusterFS分布式存储
  • 【OJ刷题】双指针问题6
  • pWnOS的第二种全新解法(ssh私钥破解、webmin漏洞提权)
  • C++3D迷宫
  • opencv之图像梯度
  • # wps必须要登录激活才能使用吗?
  • Java多线程2
  • 开发板与ubuntu建立网络通信(NFS和TFTP协议搭建)
  • 【GESP】C++一级练习BCQM3006,多行输出
  • MySQL——数据库的高级操作(三)权限管理(4)收回权限
  • JUC学习笔记(一)
  • 【comparator, comparable】小总结
  • css的样式优先级
  • go append函数以及写入
  • Hibernate【inverse和cascade属性】知识要点
  • IndexedDB
  • JAVA SE 6 GC调优笔记
  • Java编程基础24——递归练习
  • laravel with 查询列表限制条数
  • Less 日常用法
  • node.js
  • React Native移动开发实战-3-实现页面间的数据传递
  • React的组件模式
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • text-decoration与color属性
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 反思总结然后整装待发
  • 项目实战-Api的解决方案
  • 一天一个设计模式之JS实现——适配器模式
  • 用jQuery怎么做到前后端分离
  • 原生JS动态加载JS、CSS文件及代码脚本
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • (160)时序收敛--->(10)时序收敛十
  • (定时器/计数器)中断系统(详解与使用)
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (三分钟)速览传统边缘检测算子
  • (四)c52学习之旅-流水LED灯
  • (四)stm32之通信协议
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • .net Signalr 使用笔记
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • [28期] lamp兄弟连28期学员手册,请大家务必看一下
  • [android] 请求码和结果码的作用
  • [C#]使用PaddleInference图片旋转四种角度检测
  • [C++数据结构之看懂就这一篇]图(上)
  • [C进阶] 数据在内存中的存储——浮点型篇