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

news/2024/7/3 2:18:21

目录

一、安装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://lihuaxi.xjx100.cn/news/1952282.html

相关文章

跟着我学Python进阶篇:02.面向对象(上)

往期文章 跟着我学Python基础篇&#xff1a;01.初露端倪 跟着我学Python基础篇&#xff1a;02.数字与字符串编程 跟着我学Python基础篇&#xff1a;03.选择结构 跟着我学Python基础篇&#xff1a;04.循环 跟着我学Python基础篇&#xff1a;05.函数 跟着我学Python基础篇&#…

xss-labs(10-16)

level10:欢迎来到level10 尝试注入 <script>alert(欢迎来钓鱼)</script> 寻找注入点 让表单显示出来 随便输入一个字符康康 url出现了变化</

探索Java中的Map:领略键值对的无限魅力

目录 1、前言 2、介绍Map 2.1 什么是Map 2.2 Map的特点 3、常用的Map实现类 3.1 HashMap 3.2 TreeMap 3.3 LinkedHashMap 3.4 Hashtable 3.5 ConcurrentHashMap 4、操作Map的常用方法 5、Map的应用场景 5.1 缓存 5.2 数据存储 5.3 计数器 6、常见问题解答 6.1…

「超级细菌」魔咒或将打破,MIT 利用深度学习发现新型抗生素

作者&#xff1a;加零 编辑&#xff1a;李宝珠、三羊 MIT 利用图神经网络 Chemprop 识别潜在抗生素&#xff0c;特异性杀死鲍曼不动杆菌。 自然界中充满了各种各样的微生物&#xff0c;例如结核杆菌&#xff08;导致肺结核&#xff09;、霍乱弧菌&#xff08;导致霍乱&#…

RT-Thread: 线程创建及应用

说明&#xff1a;这里记录 RT-Thread 的具体创建过程&#xff0c;相当于线程创建的一个模式&#xff0c;具体线程相关的信息没做介绍&#xff0c; RT-Thread 的官方文档里面已经有详细介绍&#xff0c;如有需要请移步官网。 官网链接&#xff1a;https://www.rt-thread.org/do…

鸿蒙HarmonyOS学习手册_入门篇

鸿蒙HarmonyOS学习手册_入门篇 文章目录 鸿蒙HarmonyOS学习手册_入门篇入门快速入门开发准备基本概念UI框架应用模型工具准备 构建第一个ArkTS应用&#xff08;Stage模型&#xff09;-快速入门-入门创建ArkTS工程ArkTS工程目录结构&#xff08;Stage模型&#xff09;构建第一个…

【昕宝爸爸系列】如何将集合变成线程安全的?

如何将集合变成线程安全的? ✅典型解析&#x1f7e2;拓展知识仓☑️Java中都有哪些线程安全的集合&#xff1f;&#x1f7e0;线程安全集合类的优缺点是什么&#x1f7e1;如何选择合适的线程安全集合类☑️如何解决线程安全集合类并发冲突问题✔️乐观锁实现方式 (具体步骤)。✅…

ROS2 Humble学习笔记

本文发表与个人的github pages。部分内容未同步到这里。 想查看完整内容&#xff0c;请移步到ROS2 Humble学习笔记。 一、前言 2013年的时候已经接触ROS了&#xff0c;当时断断续续学习了一些ROS的基础知识。16年搬到深圳之后&#xff0c;也有幸参加过星火的一次关于ROS的一些…