VSCode 及 MinGW 安装

  • VSCode 安装

    1. VSCode 官网
    2. 下载后下一步下一步安装;
    3. 安装VSCode C/C++ 插件;
  • MinGW 安装

    1. 下载 MinGW-w64 - for 32 and 64 bit Windows

      • DWARF:一种带调试信息的包, 所以比一般的包尺寸大,仅支持32位系统。dwarf 的性能要优于 sjlj。
      • SJLJ:跨平台,支持32、64位系统,稳定性好。缺点是:运行速度稍慢,GCC不支持。sjlj支持32、64两种编译,需加-m32或-m64参数。
      • SEH:性能较好,调用系统机制处理异常,支持32,64位系统,缺点是:GCC不支持。
      • posix: 开发 Linux、Unix、Mac OS 等操作系统下的程序,启用了C++ 11 多线程特性。
      • win32: 开发 Windows 程序,未启用C++ 11 多线程特性
    2. 解压后将MinGW的bin文件夹添加到系统的PATH环境变量;

环境配置

  • 配置编译器 c_cpp_properties.json文件
    1. 配置项目属性及编译器

      • 打开VScode,首先新建一个放文件的文件夹,并在左侧打开,然后使用Ctrl+Shift+P调出命令面板,按以下过程操作。

      • 左侧文件夹下就会出现一个.vscode文件夹,其中有一个c_cpp_properties.json文件,到这里编译器配置结束;
        其中,c_cpp_properties.json文件内容:

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        {
        "configurations": [
        {
        "name": "Win32",
        "includePath": [
        "${workspaceFolder}/**",
        "${vcpkgRoot}/x64-windows/include"
        ],
        "defines": [
        "_DEBUG",
        "UNICODE",
        "_UNICODE"
        ],
        "windowsSdkVersion": "10.0.17763.0",
        "compilerPath": "C:/MinGW64/mingw64/bin/g++.exe",
        "cStandard": "c17",
        "cppStandard": "c++17",
        "intelliSenseMode": "windows-gcc-x64"
        }
        ],
        "version": 4
        }
      • 相关参数

        参数名 功能
        env 用户自定义变量
        configuration 定义编译器、头文件、C\C++标准
        version c_cpp_properties.json文件版本,不可修改。
    2. 配置构建任务 tasks.json 文件

      • 新建cpp文件如下:

        1
        2
        3
        4
        5
        6
        #include<iostream>
        int main()
        {
        std::cout<<"hello_vscode"<<std::endl;
        return 0;
        }
      • 配置tasks.json
        目的是是创建一个tasks.json文件来告诉VSCode如何构建(编译)程序(即就是调用g++编译器基于源代码创建可执行文件exe)。配置过程如下:首先Ctrl+Shift+P调出命令面板

      • 这样,.vscode文件夹下就会出现一个名为tasks.json的配置文件。构建任务配置结束,这里你可以自己选择生成的exe文件路径。
        tasks.json文件内容:

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        24
        25
        26
        27
        {
        "version": "2.0.0",
        "tasks": [
        {
        "type": "cppbuild",
        "label": "C/C++: g++.exe 生成活动文件",
        "command": "C:/MinGW64/mingw64/bin/g++.exe",
        "args": [
        "-g",
        "${file}",
        "-o",
        "${fileDirname}\\${fileBasenameNoExtension}.exe"
        ],
        "options": {
        "cwd": "C:/MinGW64/mingw64/bin"
        },
        "problemMatcher": [
        "$gcc"
        ],
        "group": {
        "kind": "build",
        "isDefault": true
        },
        "detail": "编译器: C:/MinGW64/mingw64/bin/g++.exe"
        }
        ]
        }
      • 相关参数

        参数名 功能
        type 编译环境类型
        label 当前任务名,可自行设置
        args 编译选项,包括所的编译文件、保存编译文件的目录等
        command 编译器所在的绝对路径
        options-cwd 编译器所在目录
    3. 配置调试设置 ** launch.json文件 **

      • 点击"运行->启动调试"用来在.vscode文件夹中产生一个launch.json文件,用来配置调试的相关信息:


      • 这时,.cpp文件会自动被编译生成.exe文件并运行,同时在.vscode文件夹下生成一个launch.json文件。到这里就算是配置结束了。
        launch.json文件内容:

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        24
        25
        26
        27
        28
        29
        {
        // 使用 IntelliSense 了解相关属性。
        // 悬停以查看现有属性的描述。
        // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
        "version": "0.2.0",
        "configurations": [
        {
        "name": "g++.exe - 生成和调试活动文件",
        "type": "cppdbg",
        "request": "launch",
        "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
        "args": [],
        "stopAtEntry": false,
        "cwd": "E:/MinGW64/mingw64/bin",
        "environment": [],
        "externalConsole": false,
        "MIMode": "gdb",
        "miDebuggerPath": "E:\\MinGW64\\mingw64\\bin\\gdb.exe",
        "setupCommands": [
        {
        "description": "为 gdb 启用整齐打印",
        "text": "-enable-pretty-printing",
        "ignoreFailures": true
        }
        ],
        "preLaunchTask": "C/C++: g++.exe 生成活动文件"
        }
        ]
        }

      • 相关参数

        参数名 功能
        name 调试任务名称
        type 调试环境的具体类型 node、java、cppdbg 等等
        program 被调试可执行文件的绝对路径
        args 程序调试时,传递给程序命令行的参数
        stopAtEntry stopAtEntry
        cwd 调试程序时的工作目录,一般为工作空间
        externalConsole 是否在控制台显示
        MIMode 指示MIDebugEngine将连接的控制台调试器。允许的值是 “gdb”“ldb”。
        miDebuggerPath 到MI调试器(如gdb)的路径。当未指定时,它将首先搜索调试器的路径。
      • 最终的效果