如何在 VSCode 中配置 C++ 开发环境:详细教程

news2025/1/7 5:25:54

如何在 VSCode 中配置 C++ 开发环境:详细教程

在软件开发的过程中,选择一个合适的开发环境是非常重要的。Visual Studio Code(VSCode)作为一款轻量级的代码编辑器,凭借其强大的扩展性和灵活性,受到许多开发者的青睐。本文将详细介绍如何在 VSCode 中配置 C++ 开发环境,包括安装必要的工具、配置编译器、设置调试环境等。希望通过这篇文章,能够帮助你快速搭建 C++ 开发环境,实现高效编程。

目录

  1. 什么是 VSCode?
  2. 安装 VSCode
  3. 安装 C++ 编译器
    • 3.1 Windows 系统
    • 3.2 macOS 系统
    • 3.3 Linux 系统
  4. 安装 C++ 扩展
  5. 创建 C++ 项目
  6. 编写和编译代码
  7. 配置调试环境
  8. 常见问题解答
  9. 总结

1. 什么是 VSCode?

Visual Studio Code 是微软推出的一款免费的开源代码编辑器,支持多种编程语言,包括 C++。它具有丰富的插件生态系统,可以通过安装扩展来增强功能,如代码高亮、智能提示、调试等。

2. 安装 VSCode

首先,你需要下载并安装 VSCode。访问 VSCode 官网 并选择适合你操作系统的版本进行下载。

在这里插入图片描述

安装完成后,启动 VSCode。

3. 安装 C++ 编译器

3.1 Windows 系统

在 Windows 系统上,推荐使用 MinGW 或者 Microsoft Visual C++(MSVC)。

安装 MinGW
  1. 下载 MinGW 安装程序:MinGW 下载页面

  2. 运行安装程序,选择 mingw32-basemingw32-gcc-g++ 进行安装。

  3. 安装完成后,将 MinGW 的 bin 目录添加到系统环境变量中。通常路径为 C:\MinGW\bin

    • 右键点击“我的电脑” -> “属性” -> “高级系统设置” -> “环境变量”。
    • 在“系统变量”中找到 Path,点击“编辑”,添加 C:\MinGW\bin

3.2 macOS 系统

在 macOS 上,可以通过 Homebrew 安装 GCC。

  1. 打开终端,输入以下命令安装 Homebrew(如果尚未安装):

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    
  2. 安装 GCC:

    brew install gcc
    

3.3 Linux 系统

在 Linux 系统上,可以使用包管理器安装 GCC。

  • Ubuntu/Debian

    sudo apt update
    sudo apt install build-essential
    
  • Fedora

    sudo dnf install gcc-c++
    

4. 安装 C++ 扩展

  1. 启动 VSCode,点击左侧活动栏中的扩展图标(或按 Ctrl + Shift + X)。

  2. 在搜索框中输入 C/C++,找到由 Microsoft 提供的 C/C++ 扩展并点击安装。

在这里插入图片描述

5. 创建 C++ 项目

  1. 在 VSCode 中,选择“文件” -> “新文件”,并保存为 main.cpp

  2. 编写一段简单的 C++ 代码,例如:

    #include <iostream>
    
    int main() {
        std::cout << "Hello, World!" << std::endl;
        return 0;
    }
    

6. 编写和编译代码

编译代码

  1. 打开终端(Ctrl + ),在终端中输入以下命令进行编译:

    • Windows

      g++ main.cpp -o main.exe
      
    • macOS/Linux

      g++ main.cpp -o main
      
  2. 编译成功后,运行程序:

    • Windows

      ./main.exe
      
    • macOS/Linux

      ./main
      

示例输出

Hello, World!

7. 配置调试环境

  1. 点击左侧活动栏中的“运行和调试”图标,选择“创建一个 launch.json 文件”。

  2. 选择 C++ (GDB) 选项,VSCode 会自动生成一个 launch.json 文件。

  3. 修改 launch.json 文件,确保 program 路径正确。例如:

    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "C++ Launch",
                "type": "cppdbg",
                "request": "launch",
                "program": "${workspaceFolder}/main", // 确保路径正确
                "args": [],
                "stopAtEntry": false,
                "cwd": "${workspaceFolder}",
                "environment": [],
                "externalConsole": false,
                "MIMode": "gdb",
                "setupCommands": [
                    {
                        "description": "Enable pretty-printing for gdb",
                        "text": "-enable-pretty-printing",
                        "ignoreFailures": true
                    }
                ],
                "preLaunchTask": "build",
                "miDebuggerPath": "gdb",
                "setupCommands": [
                    {
                        "text": "-enable-pretty-printing",
                        "description": "Enable pretty printing",
                        "ignoreFailures": true
                    }
                ]
            }
        ]
    }
    
  4. 创建一个 tasks.json 文件,以便在调试之前自动编译代码。在 .vscode 文件夹中创建 tasks.json 文件,内容如下:

    {
        "version": "2.0.0",
        "tasks": [
            {
                "label": "build",
                "type": "shell",
                "command": "g++",
                "args": [
                    "-g",
                    "main.cpp",
                    "-o",
                    "main"
                ],
                "group": {
                    "kind": "build",
                    "isDefault": true
                },
                "problemMatcher": ["$gcc"],
                "detail": "Generated task by Debugger."
            }
        ]
    }
    
  5. 现在,你可以通过点击左侧的“运行和调试”按钮,选择“C++ Launch”来启动调试。

8. 常见问题解答

问题 1:编译时找不到 g++ 命令?

确保你已经将 MinGW 的 bin 目录添加到系统环境变量中,并重启 VSCode。

问题 2:调试时出现错误?

确保 launch.jsontasks.json 中的路径配置正确,并且程序已经成功编译。

问题 3:如何在终端中运行程序?

在终端中,使用 ./main(Linux/macOS)或 main.exe(Windows)命令运行编译后的程序。

9. 总结

通过以上步骤,你已经成功在 VSCode 中配置了 C++ 开发环境。现在你可以开始编写、编译和调试 C++ 程序了。VSCode 提供了强大的功能和灵活的配置,使得 C++ 开发变得更加高效和便捷。

最后提醒

  • 保持 VSCode 和扩展的更新,以获得最新的功能和修复。
  • 多尝试不同的扩展,如 CMake Tools、Code Runner 等,以提升开发体验。

希望这篇文章能对你有所帮助,祝你编程愉快!如果有任何问题,欢迎在评论区留言。

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

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

相关文章

UE5动画蓝图

动画蓝图&#xff0c;混合空间&#xff0c;状态机&#xff0c;瞄准偏移&#xff0c;动画蒙太奇&#xff0c;动画混合&#xff0c;骨骼绑定&#xff0c;动画重定向&#xff0c;动画通知&#xff0c;Control Rig…… 虚幻动画模块是一个庞大的系统&#xff0c;大模块里又包含很多…

腾讯云智能结构化 OCR:驱动多行业数字化转型的核心引擎

在当今数字化时代的汹涌浪潮中&#xff0c;数据已跃升为企业发展的关键要素&#xff0c;其高效、精准的处理成为企业在激烈市场竞争中脱颖而出的核心竞争力。腾讯云智能结构化 OCR 技术凭借其前沿的科技架构与卓越的功能特性&#xff0c;宛如一颗璀璨的明星&#xff0c;在交通、…

Flutter Android修改应用名称、应用图片、应用启动画面

修改应用名称 打开Android Studio&#xff0c;打开对应项目的android文件。 选择app下面的manifests->AndroidManifest.xml文件&#xff0c;将android:label"bluetoothdemo2"中的bluetoothdemo2改成自己想要的名称。重新启动或者重新打包&#xff0c;应用的名称…

USB 驱动开发 --- Gadget 设备连接 Windows 免驱

环境信息 测试使用 DuoS(Arm CA53&#xff0c; Linux 5.10) 搭建方案验证环境&#xff0c;使用 USB sniff Wirekshark 抓包分析&#xff0c;合照如下&#xff1a; 注&#xff1a;左侧图中设备&#xff1a;1. 蓝色&#xff0c;USB sniff 非侵入工 USB 抓包工具&#xff1b;2. …

java项目之读书笔记共享平台(源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的闲一品交易平台。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 读书笔记共享平台的主要使…

git知识点汇总

git init 初始化一个git仓库&#xff0c;后面可以加仓库名&#xff0c;在当前目录下创建指定名称的目录并在该目录下创建仓库&#xff0c;若不加则直接在当前目录下创建仓库。git仓库的三个区域&#xff1a;工作区&#xff08;当前目录&#xff09;、暂存区&#xff08;.git/in…

探索大型语言模型新架构:从 MoE 到 MoA

探索大型语言模型新架构&#xff1a;从 MoE 到 MoA 当前&#xff0c;商业科技公司纷纷投身于一场激烈的竞赛&#xff0c;不断扩大语言模型的规模&#xff0c;并为其注入海量的高质量数据&#xff0c;试图逐步提升模型的准确性。然而&#xff0c;这种看似顺理成章的发展路径逐渐…

单片机-静动态数码管实验

P0控制数码管 &#xff0c;P0低电平 P1,P2,P3高电平 1、静态数码管 需求&#xff1a;数码管显示0&#xff0c;即让p0端口输出数字0的段码0x3f(共阴) #include "reg52.h" typedef unsigned int u16; typedef unsigned char u8; //数码管显示数字的数组 共阴极 …

Hyperbolic dynamics

http://www.scholarpedia.org/article/Hyperbolic_dynamics#:~:textAmong%20smooth%20dynamical%20systems%2C%20hyperbolic%20dynamics%20is%20characterized,semilocal%20or%20even%20global%20information%20about%20the%20dynamics. 什么是双曲动力系统&#xff1f; A hy…

细说STM32F407单片机轮询方式CAN通信

目录 一、项目介绍 二、项目配置 1、时钟、DEBUG、USART6、NVIC、GPIO、CodeGenerator 2、CAN1 &#xff08;1&#xff09;Bit Timings Parameters组&#xff0c;位时序参数 &#xff08;2&#xff09;Basic Parameters组&#xff0c;基本参数 &#xff08;3&#xff09…

linux装git

前言 以 deepin 深度系统为例&#xff0c;安装命 令行版 Git 非常简单。 安装 注意&#xff1a;需要输入账号密码&#xff0c;否则无法进行。 打开终端&#xff0c;执行如下命令即可。 sudo apt-get install git成功 如下图所示&#xff0c;输入 git &#xff0c;命令识别即…

微信小程序滑动解锁、滑动验证

微信小程序简单滑动解锁 效果 通过 movable-view &#xff08;可移动的视图容器&#xff0c;在页面中可以拖拽滑动&#xff09;实现的简单微信小程序滑动验证 movable-view 官方说明&#xff1a;https://developers.weixin.qq.com/miniprogram/dev/component/movable-view.ht…

Kerberos用户认证-数据安全-简单了解-230403

hadoop安全模式官方文档&#xff1a;https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/SecureMode.html kerberos是什么 kerberos是计算机网络认证协议&#xff0c;用来在非安全网络中&#xff0c;对个人通信以安全的手段进行身份认证。 概念&#…

大麦抢票科技狠活

仅供学习参考&#xff0c;切勿再令您所爱的人耗费高昂的价格去购置黄牛票 ⚠️核心内容参考: 据悉&#xff0c;于购票环节&#xff0c;大麦凭借恶意流量清洗技术&#xff0c;于网络层实时甄别并阻拦凭借自动化手段发起下单请求的流量&#xff0c;强化对刷票脚本、刷票软件以及…

光伏电站的成本估算方式

绿虫仿真设计软件的成本估算功能主要通过以下方式实现&#xff1a; 依据设计方案自动生成材料清单&#xff1a;软件能够根据光伏项目的具体设计&#xff0c;确定所需的各种材料&#xff0c;如光伏组件、逆变器、线缆等。结合市场价格信息&#xff1a;它可以获取实时的市场价格…

结构生物学1-绪论:

请结合图片&#xff0c;详细解释图片中的内容&#xff0c;要求逻辑清晰&#xff0c;并给出整理与答疑1&#xff0c;x射线衍射&#xff1a; 1. X射线与光学显微镜的基本原理对比 X射线的特性&#xff1a;为了解析大约1-5埃&#xff08;0.1-0.5纳米&#xff09;的细小原子结构&…

yolo小damo合集

效果如下&#xff1a;这个是图片检测 效果如下&#xff1a;这个是视频检测 效果如下&#xff1a;这个是摄像头检测 1 相关库 除了yolov11所用库之外&#xff0c;本文所用到的额外库为pyqt5&#xff0c;输入指令进行安装 pip install pyqt5 导入所需要的库 import sys fro…

商标名称仅由常见姓氏构成,缺显驳回!

近日一个江苏网友给普推知产商标老杨发过来的一个商标驳回案例&#xff0c;商标驳回的原因与第一次驳回引证的商标居然是不一样的&#xff0c;引证的商标与第一次引证的商标也是不一样的。 看了下引证的两个商标与申请商标名称明显不太近似&#xff0c;或许还有做复审的机会&am…

Rockect基于Dledger的Broker主从同步原理

1.前言 此文章是在儒猿课程中的学习笔记&#xff0c;感兴趣的想看原来的课程可以去咨询儒猿课堂 这篇文章紧挨着上一篇博客来进行编写&#xff0c;有些不清楚的可以看下上一篇博客&#xff1a; RocketMQ原理简述&#xff08;二&#xff09;-CSDN博客 2.Broker的高可用 如果…

深入Android架构(从线程到AIDL)_08 认识Android的主线程

目录 3、 认识Android的主线程(又称UI线程) 复习&#xff1a; 各进程(Process)里的主线程​编辑 UI线程的责任&#xff1a; 迅速处理UI事件 举例 3、 认识Android的主线程(又称UI线程) 复习&#xff1a; 各进程(Process)里的主线程 UI线程的责任&#xff1a; 迅速处理UI事…