VSCode使用MinGW编译器,配置C/C++环境

news2024/11/15 16:25:48

目录

一、安装VSCode

二、安装MinGW编译器

1、配置环境变量

2、测试配置是否成功

三、配置VSCode

1、安装所需扩展

2、新建代码存放文件夹

3、添加配置文件

4、配置文件内容

(1)c_cpp_properties.json

(2)launch.json

(3)settings.json

(4)tasks.json

测试


每次换了电脑都忘记配环境的教程,这次直接做个笔记得了。

一、安装VSCode

VSCode安装教程(默认已经装好)

VSCode安装使用教程(最新详细版)_vscode安装教程-CSDN博客

VSCode只是编辑器,所以还需要一个编译器,这里使用MinGW编译器。

二、安装MinGW编译器

下载链接:MinGW Distro - nuwen.net

找到下载的安装包位置,双击,出现一个窗口,意思是选择安装路径,我安装在了D:\software\MinGW\中。然后点击“Extract”安装。

1、配置环境变量

安装完成后打开安装后的目录,打开bin文件目录,复制地址栏【我的路径是D:\software\MinGW\MinGW\bin】。

win11直接搜索“查看高级系统设置”。

查看环境变量

环境变量配置成功,测试是否配置成功。

2、测试配置是否成功

Win+R调出命令提示符,输入cmd,弹出命令行。输入g++ --version,如图显示版本表示配置成功。

三、配置VSCode

1、安装所需扩展

需要安装的:

  •  C/C++ 【必备】
  • Code Runner【必备】
  • Rainbow Brackets【帮助阅读工具, 按需安装】
  • Chinese(Simplified)【中文环境, 按需安装】

2、新建代码存放文件夹

安装完成后新建文件夹存放文件(尽量路径中不要有中文),我的是G:\MyCode\目录。

然后在vscode中文件-->打开文件夹。

3、添加配置文件

点击新建文件夹,并将文件夹命名为.vscode(只能是这个名字)

点击新建文件,新建四个文件。文件名分别为:

  • c_cpp_properties.json

  • launch.json

  • settings.json

  • tasks.json

4、配置文件内容

(1)c_cpp_properties.json

{
    "configurations": [
      {
        "name": "Win64",
        "includePath": ["${workspaceFolder}/**"],
        "defines": ["_DEBUG", "UNICODE", "_UNICODE"],
        "windowsSdkVersion": "10.0.18362.0",
        "compilerPath": "D:/software/MinGW/MinGW/bin/g++.exe",
        "cStandard": "c17",
        "cppStandard": "c++17",
        "intelliSenseMode": "gcc-x64"
      }
    ],
    "version": 4
  }

其中,compilerPath这一项要把路径改成刚才g++的安装路径(在MinGW编译器安装的bin目录下)

(2)launch.json

{
    "version": "0.2.0",
    "configurations": [
      {
        "name": "(gdb) Launch", 
        "type": "cppdbg", 
        "request": "launch", 
        "program": "${fileDirname}\\${fileBasenameNoExtension}.exe", 
        "args": [], 
        "stopAtEntry": false,
        "cwd": "${workspaceRoot}",
        "environment": [],
        "externalConsole": true, 
        "MIMode": "gdb",
        "miDebuggerPath": "D:/software/MinGW/MinGW/bin/gdb.exe",
        "preLaunchTask": "g++",
        "setupCommands": [
          {
            "description": "Enable pretty-printing for gdb",
            "text": "-enable-pretty-printing",
            "ignoreFailures": true
          }
        ]
      }
    ]
  }
  

miDebuggerPath这一项也要把路径改成刚才g++的安装路径(在MinGW编译器安装的bin目录下)

(3)settings.json

{
  "files.associations": {
    "*.py": "python",
    "iostream": "cpp",
    "*.tcc": "cpp",
    "string": "cpp",
    "unordered_map": "cpp",
    "vector": "cpp",
    "ostream": "cpp",
    "new": "cpp",
    "typeinfo": "cpp",
    "deque": "cpp",
    "initializer_list": "cpp",
    "iosfwd": "cpp",
    "fstream": "cpp",
    "sstream": "cpp",
    "map": "c",
    "stdio.h": "c",
    "algorithm": "cpp",
    "atomic": "cpp",
    "bit": "cpp",
    "cctype": "cpp",
    "clocale": "cpp",
    "cmath": "cpp",
    "compare": "cpp",
    "concepts": "cpp",
    "cstddef": "cpp",
    "cstdint": "cpp",
    "cstdio": "cpp",
    "cstdlib": "cpp",
    "cstring": "cpp",
    "ctime": "cpp",
    "cwchar": "cpp",
    "exception": "cpp",
    "ios": "cpp",
    "istream": "cpp",
    "iterator": "cpp",
    "limits": "cpp",
    "memory": "cpp",
    "random": "cpp",
    "set": "cpp",
    "stack": "cpp",
    "stdexcept": "cpp",
    "streambuf": "cpp",
    "system_error": "cpp",
    "tuple": "cpp",
    "type_traits": "cpp",
    "utility": "cpp",
    "xfacet": "cpp",
    "xiosbase": "cpp",
    "xlocale": "cpp",
    "xlocinfo": "cpp",
    "xlocnum": "cpp",
    "xmemory": "cpp",
    "xstddef": "cpp",
    "xstring": "cpp",
    "xtr1common": "cpp",
    "xtree": "cpp",
    "xutility": "cpp",
    "stdlib.h": "c",
    "string.h": "c"
  },
  "editor.suggest.snippetsPreventQuickSuggestions": false,
  "aiXcoder.showTrayIcon": true
}

(4)tasks.json

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "g++",
      "command": "g++",
      "args": [
        "-g",
        "${file}",
        "-o",
        "${fileDirname}/${fileBasenameNoExtension}.exe"
      ],
      "problemMatcher": {
        "owner": "cpp",
        "fileLocation": ["relative", "${workspaceRoot}"],
        "pattern": {
          "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
          "file": 1,
          "line": 2,
          "column": 3,
          "severity": 4,
          "message": 5
        }
      },
      "group": {
        "kind": "build",
        "isDefault": true
      }
    }
  ]
}

此时环境已经配好了。

注意:以后的C/C++代码文件必须放在.vscode文件夹的文件夹里,否则会出现报错。

测试

测试用了一个最简单的"Hello, World!" 程序。

#include <stdio.h>

int main() {
    printf("Hello, World!\n");
    return 0;
}

以上就是所有的配置过程,比较简单,但是其中有部分比较细小但需要注意的事项。

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

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

相关文章

11 个 Python全栈开发工具集

前言 以下是专注于全栈开发不同方面的 Python 库;有些专注于 Web 应用程序开发&#xff0c;有些专注于后端&#xff0c;而另一些则两者兼而有之。 1. Taipy Taipy 是一个开源的 Python 库&#xff0c;用于构建生产就绪的应用程序前端和后端。 它旨在加快应用程序开发&#xf…

数字战场上的坚固屏障:雷池社区版(WAF)

黑客的挑战 智能语义分析算法&#xff1a; 黑客们常利用复杂技术进行攻击&#xff0c;但雷池社区版的智能语义分析算法能深入解析攻击本质&#xff0c;即使是最复杂的攻击手法也难以逃脱。 0day攻击防御&#xff1a; 传统防火墙难以防御未知攻击&#xff0c;但雷池社区版能有效…

云卷云舒:kubernetes简介

Kubernetes是由google公司在2014年发布的一款开源的容器编排引擎&#xff0c;用于容器化应用程序的自动化部署、扩展与管理。它能够编排多种容器任务&#xff0c;涵盖虚拟机集群管理、负载均衡以及网络流量分配等等。2017年&#xff0c;aws、微软云、阿里云等等著名的云计算公司…

用Linux的视角来理解缓冲区概念

缓冲区的认识 缓冲区&#xff08;buffer&#xff09;是存储数据的临时存储区域。当我们用C语言向文件中写入数据时&#xff0c;数据并不会直接的写到文件中&#xff0c;中途还经过了缓冲区&#xff0c;而我们需要对缓冲区的数据进行刷新&#xff0c;那么数据才算写到文件当中。…

Js-基础语法(二)

运算符 赋值运算符 赋值运算符&#xff1a;对变量进行赋值的运算符 已经学过的赋值运算符&#xff1a; 将等号右边的值赋予给左边, 要求左边必须是一个容器 其他赋值运算符&#xff1a; - */% 使用这些运算符可以在对变量赋值时进行快速操作 一元运算符 众多的 JavaScrip…

10个提高 Python Web 开发效率的VS Code插件

VS Code具有灵活、便捷和丰富的可用插件库&#xff0c;是Web开发人员中非常受欢迎的代码编辑器。 本文介绍10个VS Code插件&#xff0c;它们可以提高你作为Web开发人员的工作效率。 1. Live Preview Live Preview插件支持在VS Code的小型浏览器中查看网站。因此&#xff0c;无…

40-特殊运算符delete,new,.getDate,.setDate,运算符优先级

1.delete删除. 数组 // 可以删除数组元素&#xff0c;可以删除对象键值对// 删除数组的值&#xff0c;数组长度保持不变// 删掉的值变成emptyvar arr [1,2,3,4,5];delete arr[0];console.log(arr); 对象 var obj {"a":"aa","b":"bb&quo…

LeNet-5(fashion-mnist)

文章目录 前言LeNet模型训练 前言 LeNet是最早发布的卷积神经网络之一。该模型被提出用于识别图像中的手写数字。 LeNet LeNet-5由以下两个部分组成 卷积编码器&#xff08;2&#xff09;全连接层&#xff08;3&#xff09; 卷积块由一个卷积层、一个sigmoid激活函数和一个…

数据结构及单链表例题(下)

上次我们已经了解了单链表的数据结构定义以及创建单链表的两种方法,这节介绍几道例题. 文章目录 前言 一、已知L为带头结点的单链表,请依照递归思想实现下列运算 二、单链表访问第i个数据节点 三、在第i个元素前插入元素e 四、删除第i个结点 五、查找带头结点单链表倒数第…

Vivado开发FPGA使用流程、教程 verilog(建立工程、编译文件到最终烧录的全流程)

目录 一、概述 二、工程创建 三、添加设计文件并编译 四、线上仿真 五、布局布线 六、生成比特流文件 七、烧录 一、概述 vivado开发FPGA流程分为创建工程、添加设计文件、编译、线上仿真、布局布线&#xff08;添加约束文件&#xff09;、生成比特流文件、烧录等步骤&a…

公司内部核心文件数据\资料防泄密软件系统,防止未经授权文件、文档、图纸、源代码、音视频...等数据资料外泄,自动智能透明加密保护!

为了保护公司内部的核心文件和数据资料&#xff0c;防止未经授权的外泄&#xff0c;使用自动智能透明加密保护软件系统是非常重要的。 这样的系统可以通过以下方式实现防泄密&#xff1a; 自动智能加密&#xff1a;该系统可以对公司内部的核心文件和数据资料进行自动智能加密&…

夏目友人帐OVA:和猫咪老师的初次跑腿、曾几何时下雪之日 2013.12.15

夏目友人帐OVA 1、和猫咪老师的初次跑腿 / ニャンコ先生とはじめてのおつかい2、曾几何时下雪之日 / いつかゆきのひに 1、和猫咪老师的初次跑腿 / ニャンコ先生とはじめてのおつかい 和夏目一起外出的途中&#xff0c;猫咪老师因追蜻蜓遇到了一对迷路的龙凤胎兄妹。猫咪老师不…

僵尸毁灭工程手动存档工具

介绍 这是一个可以对僵毁游戏存档进行备份的小工具&#xff0c;其基本原理是对僵毁存档中数以万计的小文件做哈希值计算并保存下来&#xff0c;下一次备份时再对存档文件进行哈希值计算&#xff0c;每次备份只对两次计算结果中存在差异的文件进行复制与替换从而忽略掉大部分未…

汽车IVI中控开发入门及进阶(十二):手机投屏

前言: 汽车座舱有车载中控大屏、仪表/HUD多屏的显示能力,有麦克风/喇叭等车载环境更好的音频输入输出能力,有方控按键、旋钮等方便的反向控制输入能力,还有高精度的车辆数据等。但汽车座舱中控主机硬件计算能力升级迭代周期相对较长,汽车的应用和服务不够丰富。现在很多汽…

电脑USB接口不同颜色的含义

当你看到笔记本电脑或台式机的USB端口时&#xff0c;你会发现USB端口的颜色很多&#xff1b;这些颜色可不只是为了好看&#xff0c;实际上不同颜色代表着不同的性能&#xff0c;那么这些带颜色的USB端口都是什么含义呢&#xff0c;下面就具体介绍下不同颜色代表的含义。-----吴…

Oracle regexp_substr

select regexp_substr(123|456|789, [^|], 1, 2) from dual;

高性能、可扩展、支持二次开发的企业电子招标采购系统源码

在数字化时代&#xff0c;企业需要借助先进的数字化技术来提高工程管理效率和质量。招投标管理系统作为企业内部业务项目管理的重要应用平台&#xff0c;涵盖了门户管理、立项管理、采购项目管理、采购公告管理、考核管理、报表管理、评审管理、企业管理、采购管理和系统管理等…

固乔快递查询助手:批量、快速、全面的快递信息查询软件

在快递行业飞速发展的今天&#xff0c;如何高效、准确地掌握快递信息成为了很多人的需求。而固乔快递查询助手正是解决这一难题的利器。 固乔快递查询助手是一款专注于快递信息查询的软件&#xff0c;支持多家主流快递公司查询。用户只需输入单号&#xff0c;即可快速查询到实时…

BitMap解析之RoaringBitMap

文章目录 BitMap计算的问题Roaring BitMap原理解析Container 介绍1. ArrayContainer2. BitmapContainer3. RunContainer小结 Roaring BitMap的集合运算1. 两个ArrayContainer的and过程2. 两个BitmapContainer的and过程时空分析 Container的创建与转换为什么说Roaring Bitmap压缩…

关于Django字段类型DateTimeField默认是不是不能为空的测试【DateTimeField学习过程记录】

chatgpt说这个字段默认情况下&#xff1a; blankFalse&#xff0c;nullFalse&#xff0c;也就是在数据库层面和表单层面都不能为空&#xff0c;我们不妨来测试一下在数据库层面是不是这样。 沿用博文 https://blog.csdn.net/wenhao_ir/article/details/135499962的配置。 模型…