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

news2024/9/21 18:57:15

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

文章目录

  • 前言
    • 文章有误敬请斧正 不胜感恩!
      • 一、准备工作
      • 二、安装 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的关键。
祝各位大佬编程愉快!


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

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

相关文章

用EA和SysML一步步建模(07)蒸馏器系统上下文图01

用EA和SysML一步步建模的操作指南&#xff08;01&#xff09; 用EA和SysML一步步建模&#xff08;02&#xff09;导入ISO-80000 用EA和SysML一步步建模&#xff08;03&#xff09;创建包图和包的关系 用EA和SysML一步步建模&#xff08;04&#xff09;创建“需求组织”包图 …

jd 京东h5st 最新版 分析

声明: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 有相关问题请第一时间头像私信联系我…

尚品汇-秒杀列表、详情、倒计时、获取下单码(五十二)

目录&#xff1a; &#xff08;1&#xff09;秒杀列表与详情 &#xff08;2&#xff09;在service-activity-client模块添加接口 &#xff08;3&#xff09;秒杀详情页面功能介绍 &#xff08;1&#xff09;秒杀列表与详情 封装秒杀列表与详情接口、 封装接口 package com…

Python 解析 Charles JSON Session File (.chlsj)

Charles 代理&#xff0c;是一款抓包软件&#xff0c;可以帮助我们抓取浏览器请求跟响应。 1、在 Filter 里面输入需要抓包的网址 2、右键 Export Session 3、文件类型选择 JSON Session File (.chlsj) 保存 4、解析响应的数据结构 response.body.text 是文本字符串。 # 导入…

SOMEIP_ETS_113: SD_Empty_Options_Array

测试目的&#xff1a; 验证DUT能够拒绝一个选项数组长度为0的SubscribeEventgroup消息&#xff0c;并以SubscribeEventgroupNAck作为响应。 描述 本测试用例旨在确保DUT遵循SOME/IP协议&#xff0c;当接收到一个选项数组长度为0的SubscribeEventgroup消息时&#xff0c;能够…

网络设备登录——《路由与交换技术》实验报告

目录 一、实验目的 二、实验设备和环境 三、实验记录 1.通过 Console 登录 步骤1:连接配置电缆。 步骤2:启动PC,运行超级终端。 步骤3:进入Console 配置界面 2.通过 Telnet 登录 步骤1:通过 Console 接口配置 Telnet 用户。 步骤2:配置 super 口令 步骤3:配置登录欢迎…

Kamailio-基于Homer与heplify的SIP信令监控-3

接上2篇文章&#xff0c;你已经顺利地安装并部署了Homer相关服务&#xff0c;配置好了服务并顺利启动了。这个时候你已经算是搭建完成了一个SIP监控、分析体系&#xff0c;那应该怎么去用呢&#xff1f; 跟着我&#xff0c;你将学会&#xff1a; 下载并安装 踩坑&#xff1a;…

PyQt5-折叠面板效果

效果预览 实际效果中带有白色面板,看如下代码 实现代码 import sys from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QFrame, QLabel, QSizePolicy from PyQt5.QtCore import QPropertyAnimation, QEasingCurve, Qtclass CollapsiblePanel(QW…

夕阳红老年大学视频教学网站管理系统设计与实现,按用户最近浏览分类字段推荐视频课程-留言和评论分词过滤

目录 1. 选题社会意义 2. 选题技术意义 3. 功能介绍 4. 技术实现 随着人口老龄化的加剧&#xff0c;老年人的精神文化生活需求日益增加。传统的老年大学由于场地有限、师资力量不足等原因&#xff0c;难以满足广大老年人的学习需求。因此&#xff0c;开发一个面向老年人的在…

【C++】STL数据结构最全函数详解2-向量vector

关于STL&#xff0c;我们之前浅浅提过&#xff1a;这里 另外对于栈&#xff0c;这里有更加详尽的介绍&#xff1a;CSTL常用数据结构1详解---栈&#xff08;stack&#xff09;-CSDN博客 这个系列将会更加深入地从函数原型开始用详细的例子解释用法 首先这一篇介绍的是一个非常…

二叉树OJ题——二叉树的最大深度

文章目录 一、题目链接二、解题思路三、解题代码 一、题目链接 二叉树的最大深度 二、解题思路 三、解题代码

51单片机应用开发---数码管的控制应用

实现目标 1、掌握数码管结构、驱动原理及应用&#xff1b; 2、掌握数码管段码表推导&#xff1b; 3、会编程让开发板8个数码管动态显示。 一、什么是数码管&#xff1f; 1.数码管定义 数码管&#xff0c;也称为LED数码管&#xff0c;基本单元是发光二极管(LED)。分为七段数…

Makefile 学习笔记(一)gcc编译过程

环境准备 .linux 系统(虚拟机) VS code linux 编译过程 预处理: 把.h .c 展开形成一个文件.宏定义直接替换 头文件 库文件 .i 汇编&#xff1a; .i 生成一个汇编代码文件 .S 编译&#xff1a; .S 生成一个 .o .obj 链接: .o 链接 .exe .elf gcc c语言 g c语言 gcc的使用 …

钥匙和房间的题解——使用dfs或bfs进行图遍历

841. 钥匙和房间 这 n 个房间看成有向图中的 n 个节点&#xff0c;在x号房拿到了打开y号房的钥匙&#xff0c;可以看作是图中的 x 号点到 y 号点的一条有向边。 这样一来&#xff0c;问题就变成了给定一张有向图&#xff0c;询问从 0 号节点出发是否能够到达所有的节点。 DFS深…

1.3 计算机网络的分类

欢迎大家订阅【计算机网络】学习专栏&#xff0c;开启你的计算机网络学习之旅&#xff01; 文章目录 前言一、按分布范围分类二、按传输技术分类三、按拓扑结构分类四、按使用者分类五、按传输介质分类 前言 计算机网络根据不同的标准可以被分为多种类型&#xff0c;本章从分布…

【STL】 set 与 multiset:基础、操作与应用

在 C 标准库中&#xff0c;set 和 multiset 是两个非常常见的关联容器&#xff0c;主要用于存储和管理具有一定规则的数据集合。本文将详细讲解如何使用这两个容器&#xff0c;并结合实例代码&#xff0c;分析其操作和特性。 0.基础操作概览 0.1.构造&#xff1a; set<T&…

CefSharp_Vue交互(Element UI)_WinFormWeb应用(3)---通过页面锁屏和关机(含示例代码)

一、预览 实现功能:通过vue标题栏按钮锁屏和关机 1.1 预览 1.2 代码 锁屏代码csharp LockWorkStation() 关机代码chsharp 注意vue代码参数和此参数一致(0/1/2) 方法ExitWindowsEx()

春秋云境靶场之CVE-2022-29464

一.靶场环境 1.下载靶场 根据题目提示&#xff0c;存在文件上传漏洞 2.启动靶场 打开之后&#xff0c;页面显示 然后就跳转到一个登录页面 二.登录页面 1.尝试登录 我们尝试弱口令登录admin,admin&#xff0c;跳转到连接超时页面 当我们再次点击这个链接后&#xff0c;就会…

Leetcode面试经典150题-20.有效的括号

给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括…

【网络原理】❤️Tcp 常用机制❤️ —— 延时应答,捎带应答, 面向字节流, 异常情况处理。保姆式详解 , 建议收藏 !!!

本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. &#x1f92d;&#x1f92d;&#x1f92d;可能说的不是那么严谨.但小编初心是能让更多人…