在VSCode中搭建C++编译环境

2023-05-16

在VSCode中搭建C++编译环境

  • VSCode当中搭建C++环境
  • 下载VSCode
  • 下载MinGW
  • 配置文件撰写
  • 测试小程序

VSCode当中搭建C++环境

vscode作为一款轻量级编程软件深受编程人员喜爱,下面针对如何在VScode中搭建C++编译环境进行演示并使用小程序示例。

下载VSCode

附上下载链接,下载安装即可

下载MinGW

  1. 安装MinGW
    附上下载链接,下载安装即可。

  2. 配置系统环境变量
    打开安装后的MinGW文件,找到并打开目录下的bin目录,复制目录绝对路径。(红框前面部分换成自己MinGW存放的目录)
    图1
    打开此电脑,右键空白部分点击属性->高级系统设置->环境变量,双击打开用户变量中的Path目录(也可以是系统变量中的Path目录),选择新建,将复制好的MinGW\bin绝对路径复制进去,确认即可。如下图所示。
    在这里插入图片描述
    配置完后,win+R,输入cmd打开命令行,输入g++ --version,可返回版本信息说明路径配置成功。
    在这里插入图片描述

  3. VSCode软件配置
    使用VSCode编译C++不光需要本地的C++环境,也需要VSCode本身软件支持。这就涉及到扩展工具的使用。我个人认为,这种轻量级的工具方便的地方就在于可以在需要用某个置顶功能时认为进行单独安装,而非传统式的一股脑下载。
    打开VSCode,点击扩展,在商店中搜索C++,点击安装->信任工作区安装;再搜索code runner,点击安装即可。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(安装code runner后,就可以使用ctrl+alt+n快捷键运行程序,使用ctrl+alt+m快捷键暂停运行中的程序

配置文件撰写

创建一个文件夹,用于存放所撰写的C++代码(我个人习惯为不同的编程语言创建一个单独的文件夹作为工作区,例如C++,所有.cpp、.c文件全部存入其中)。
打开VSCode资源管理器,打开C++文件夹,在该文件夹下创建一个.vscode文件夹,用于存放对工作区(即C++文件夹)的配置文件。创建三个文件,名字分别为c_cpp_properties.json,launch.json,tasks.json
在这里插入图片描述
在三个文件当中写入如下配置代码:
c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "D:\\Environment\\MinGW\bin\\g++.exe", //这里需要写入自己g++.exe程序所在的绝对路径。注意双反斜杠的使用。
            "cStandard": "c17",
            "cppStandard": "c++17",
            //"intelliSenseMode": "windows-msvc-x64"
            "intelliSenseMode": "${default}"
        }
    ],
    "version": 4
}

launch.json

{
    "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": "D:\\Environment\\MinGW\\bin\\gdb.exe",	//修改为自己gdb.exe的目录,注意双斜杠的使用
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "task g++"
        }
    ]
}

tasks.json

{
    "version": "2.0.0",
    "tasks": [
        {
        "type": "shell",
        "label": "task g++",
        "command": "D:\\Environment\\MinGW\\bin\\g++.exe",	//同之前,需修改
        "args": [
            "-g",
            "${file}",
            "-o",
            "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "-I",
            "D:\\Works\\C++",      //同之前,需修改
            "-std=c++17"
        ],
        "options": {
            "cwd": "D:\\Environment\\MinGW\\bin"	//同之前,需修改
        },
        "problemMatcher":[
            "$gcc"
        ],
        "group": "build",
        
        }
    ]
}

当然,这些键值对的含义都可以在VSCode官网的官方文档中找到,附上一个链接🖇,在左侧栏中寻找Debugging和tasks目录就可以查看了。

测试小程序

点击新建文件按键,新建test.cpp(注意一定要是.cpp结尾,使用c++的都明白)
在这里插入图片描述
输入以下测试用例:

#include<iostream>
using namespace std;

int main(){
    cout<<"hello world!"<<endl;
    return 0;
}

返回结果应为:
在这里插入图片描述
在尝试输入、输出用例2:

#include<iostream>
using namespace std;

int main(){
    string name;
    cout<<"请输入您的名字:";
    cin>>name;
    cout<<"您输入的名字是:"<<name<<endl;
    return 0;
}

输出结果:
在这里插入图片描述

如果中文出现乱码情况
点击左上角文件-首选项-设置,在设置中搜索encoding,将默认设置的UTF-8修改为GBK,即可显示中文。
在这里插入图片描述

PS:对已经创建的文件无效,如果要修改已经创建好的文件,则点击右下角按键,按照GBK编码再保存一次即可。
在这里插入图片描述
在这里插入图片描述
到此配置完成,可以撰写C++代码,以此记录我的配置过程,方便以后同学们或者我自己查看,欢迎评论或提问。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在VSCode中搭建C++编译环境 的相关文章

  • 一秒钟打印一个100S内的随机数

    1 2 gt Des 一秒钟打印一个100S内的随机数 5 gt Created Time 2021年04月19日 星期一 09时35分27秒 6 7 8 include lt stdio h gt 9 include lt stdlib
  • STM32启动文件学习

    2021 08 09 STM32启动文件学习 启动文件作用 xff1a 初始化堆栈指针SP初始化PC指针初始化中断向量表配置系统时钟调用C库 main函数进入到主程序 启动文件使用的ARM汇编指令 xff1a EQU xff1a 等于 AR
  • 03-串口(UART)的使用

    目录 第一节 UART概述1 1 UART的用处 xff1a 1 2 UART的优点1 3 UART原理与概念1 4 UART数据传输原理与过程1 5 关于电平转换1 6 UART内部具体机制 第二节 UART编程 第一节 UART概述 1
  • python基础知识之开发规范(一)

    1 脚本结构 1 1 头注释 对代码没有用 xff0c 是提供给系统或者解释器使用的 usr bin env 定义 指定路径下的Python解释器 xff0c 已经很少使用 1 2 导入 导入Python的一些功能函数到脚本中 Python
  • vivo真机调试的坑 & adb无线调试

    坑1 xff1a 安装失败 解决方案 xff1a 在工程的gradle properties中加上 android injected testOnly 61 false 坑2 xff1a 总是要输入密码才能安装 解决方案 xff1a 1 开
  • JavaScript --Node,js

    引用系统模块 const http 61 require http 创建 web 服务器 const serve 61 http createServer 当客户端 发送请求的时候 server on require req res 61
  • Cmake 2 静态链接

    代码地址cmake examples 01 basic C static library at master ttroy50 cmake examples GitHub 文件路径这样 cmake文件这样 1 生成静态链接库 2 填充包括目录
  • Cmake 3 动态链接库

    代码地址 cmake examples 01 basic D shared library at master ttroy50 cmake examples GitHub 文件结构 1 添加动态链接库 和静态链接一样 这个add libra
  • PelcoD_协议指令分析

    通过协议收发控制第三方云台转动 一般的云台指令协议格式例如 xff1a span class token comment 发送带正负号的垂直角度 span span class token keyword float span vert a
  • 【学习笔记】Esp32 Arduino 串口中断函数 缓冲区修改

    Esp32 Arduino 串口中断函数 缓冲区修改 一 前景描述1 遇到的问题2 开发环境 二 解决问题1 示例代码2 代码缺陷2 解决办法 三 最后的话 一 前景描述 最近需要用Esp32上传数据 xff0c 有一块数据采集板 xff0
  • C++程序编译过程

    C 43 43 程序编译的四个步骤 xff1a 编译预处理 xff0c 编译优化 xff0c 汇编 xff0c 链接 编译预处理 xff1a 处理以 开头的指令 xff0c 将源码 cpp 文件处理成 i 文件 编译优化 xff1a 将 i
  • 查询方式/中断方式/DMA方式的区别及适用范围

    区别 xff1a 查询方式 xff1a CPU与设备串行工作 数据传送与主程序串行工作 xff1b 中断方式 xff1a CPU与设备并行工作 数据传送与主程序串行工作 xff1b DMA方式 xff1a CPU与设备并行工作 数据传送与主
  • vscode、idea、vim 开发工具快捷键

    vscode vscode快捷键文字版 配置启用 禁用 VSCodeVim 插件的快捷键 xff1a Vim Toggle Vim Mode 项 配置启用 vimrc 文件 idea 配置启用 禁用 Idea Vim 插件的快捷键 xff1
  • TDK一体化 IMU 评估板SmartBug2.0 像七星瓢虫一样可爱

    继 2019 年最初的 SmartBug 取得成功后 xff0c 2023 年 1 月初 xff0c TDK 公司宣布宣布推出 InvenSense SmartBug 2 0 评估板 SmartBug2 0 外观与 SmartBug 相似
  • C++ 指针(二)char与指针

    一 char字符串数组和char指针 上一小节对指针的操作进行简单的介绍 xff0c 本小节主要介绍的是char类型和指针之间的一些联系 xff08 虽然使用std string很方便 xff0c 但是我觉得了解这个还是有必要的 xff09
  • stm32f103单线半双工uart通信程序

    文章目录 前言 一 使用步骤 1 打开STMcubemx 2 添加代码 总结 前言 在使用数字舵机时 所用到的通信方式为uart通信 但舵机只有三根接线 出去vcc和gnd 只有一条通信线 也就是说要实现双向通信 只能使用单线半双工模式 本
  • BlueROV加舵机控制以及走过的弯路

    BlueROV加舵机控制以及走过的弯路 因实验需求 xff0c 需要在BlueROV上加上一个一自由度的机械臂 xff0c 由一个水下舵机控制 xff0c 水下舵机需要通过PWM控制 xff0c PWM输出由手柄控制 思路也很简单 xff1
  • ORB_SLAM2 CMakeLIsts文件注释

    最近在学习ORB SLAM 发现基本找不到CMakeLists的代码注释 就决定自己注释一份 如果发现有问题的地方 欢迎和我交流 span class token function cmake minimum required span s
  • UART、RS232 、RS485 区别

    UART RS232 RS485 区别 UART RS232 RS485这些物理层的串口通信 xff0c 它们都是在同一时间发送一位 RS232 RS485只是串口通讯的变种 xff0c 理解了UART串口通讯 xff0c 那么RS232和
  • 在STM32中使用printf()的方法(可直接复制粘贴)

    1 使用printf的方法 1 1 重定向 在使用printf之前添加重定向代码 xff1a span class token macro property span class token directive hash span span

随机推荐

  • 【字符串】字符串长度与字节长度

    字符串长度 xff1a 字符串在遇到 0 之前一共有几个字符 字节长度 字符串里出现的所有元素 例如 xff1a char str 61 123abc 0123 字符串长度 xff1a 6 字节长度 xff1a 11 PS xff1a 如果
  • C语言-字符串拼接(不用strcat函数)

    include lt stdio h gt int main char str1 100 char str2 100 int i 61 0 j 61 0 printf 34 请输入字符串1 xff1a n 34 gets str1 prin
  • Qt(十四)——实现机器人完整导航功能

    Qt xff08 十四 xff09 实现机器人完整导航功能 目录 1 ui 设计2 核心代码 1 ui 设计 2 核心代码
  • vector容器存放自定义数据类型及指针

    include lt iostream gt using namespace std include lt vector gt class person public person string a int b name a age b s
  • unreal 启动报错:运行引擎需要D3D11兼容GPU(功能级别11.0,着色器模型5.0)处理

    问题 AMD核显电脑 xff0c 突然有一天开机后显示器显示效果发白 xff0c 刚开始没在意 xff0c 后来某天想使用Unreal时发现启动不了了 xff0c 弹窗报错 xff1a 运行引擎需要D3D11兼容GPU xff08 功能级别
  • Win10 RealSense L515 ORBSLAM2 配置全攻略

    目录 背景简介Step 1 准备 SDKStep 2 连接设备Step 3 测试例程Step 4 配置环境Step 5 相机标定Step 6 编写入口Step 7 实地运行附录A xff1a 获取内参代码附录B xff1a yaml 参数文
  • rviz仿真底盘移动与云台击打

    rviz仿真底盘移动与云台击打 底盘与云台通过坐标轴来模拟 xff0c 目标方块与子弹可视化通过marker仿真 其中底盘与云台固连 xff0c 底盘xy方向移动云台会同步移动 xff0c 云台可进行pitch和yaw轴旋转 xff0c 通
  • 机器视觉中坐标系转换

    机器视觉 立体视觉等等方向常常涉及到四个坐标系 xff1a 世界坐标系 相机坐标系 图像坐标系 像素坐标系 整体预览如下 1 世界坐标系和相机坐标系 世界坐标系 xff0c 也称为测量坐标系 xff0c 它是一个三维直角坐标系 Xw Yw
  • 机械臂DH参数总结

    DH参数 DH参数 xff08 Denavit Hartenberg parameters xff09 是一个用四个参数表达两对关节连杆之间位置角度关系的机械臂数学模型和坐标系确定系统 DH选的四个参数都的含义如下 xff1a link l
  • 机器人正解和逆解

    正解FK 给定机器人各关节的角度 xff0c 计算出机器人末端的空间位置 逆解IK 已知机器人末端的位置和姿态 xff0c 计算机器人各关节的角度值 挖个坑待完善
  • LeetCode—232 用栈实现队列 Cpp&Python

    LeetCode 225 用队列实现栈 Cpp amp Python 一 方法与思路二 C 43 43 代码三 Python代码 一 方法与思路 使用栈实现队列的下列操作 xff1a push x 将一个元素放入队列的尾部 pop 从队列首
  • E: Unable to locate package解决办法

    问题 xff1a E Unable to locate package 解决 xff1a sudo apt span class token operator span get updade
  • Yolo框架简介

    YOLO xff08 You Only Look Once xff09 是一种基于深度神经网络的对象识别和定位算法 xff0c 其最大的特点是运行速度很快 xff0c 可以用于实时系统 现在YOLO已经发展到v4版本 论文地址 xff1a
  • Ubuntu下编辑权限只读文件的方法

    首先要注意的是只读文件一般都是系统文件 xff0c 或者软件配置文件 xff0c 修改时要尤其谨慎 本文提供两种方法 xff1a 方法一 首先安装一个插件 span class token function sudo span apt sp
  • Ros下Aruco模块的使用

    生成ARUCO ROS MARKER 链接 http chev me arucogen 首先启动ros roscore 打开相机节点 xff0c 在此提供usb相机与Realsense D435i的启动方法 xff1a roslaunch
  • 脚气、灰指甲治疗实验方案

    脚气 xff08 已临床实验 xff09 脚气 xff0c 又叫足廯 香港脚 糜烂性脚气 症状 xff1a 80 都是这种类型 常见于多汗人群 角质层被汗水浸软 xff0c 发白了以后 xff0c 走动不断摩擦表皮脱落 xff0c 露出鲜红
  • VS2015显示“正在从以下位置加载符号“的解决办法

    解决方法 xff1a VS 工具 选项 调试 符号 看到 MicroSoft符号服务器 xff0c 去掉方框中的 xff0c 确定即可 xff0c 之后就不会再调试时加载
  • 【面包】STM32学习笔记(二) --- USART 串口通信学习总结

    tip xff1a 如有错误 xff0c 希望指出 xff0c 非常感谢 xff01 目录 简介一 USART是什么 xff1f 二 问答通信方式1 USART和UART区别2 单工 半双工 全双工区别 三 代码实验1 说明2 代码初始化配
  • [论文阅读笔记] Reciprocal n-body Collision Avoidance(ORCA/RVO2)

    论文阅读 Reciprocal n body Collision Avoidance ORCA RVO2 文章目录 论文阅读 Reciprocal n body Collision Avoidance ORCA RVO2 论文地址Intro
  • 在VSCode中搭建C++编译环境

    在VSCode中搭建C 43 43 编译环境 VSCode当中搭建C 43 43 环境下载VSCode下载MinGW配置文件撰写测试小程序 VSCode当中搭建C 43 43 环境 vscode作为一款轻量级编程软件深受编程人员喜爱 xff