Windows 下使用 VSCode 作为 CC++ IDE

Visual Studio Code是微软旗下的一个跨平台的IDE。相比于传统臃肿庞大的Visual Studio,VSCode是轻量级的工具,既可以使用插件拓展,又可以添加自定义的编译、调试配置。下面介绍如何将 VSCode 配置为一个 C/C++ 的 IDE

首先,你需要在 Windows 上安装 C/C++ 编译器(gcc/g++)和调试器(gdb),在这里下载最新版本三个组件,按照图示选择版本。

img

下载完成后解压文件夹到你想要的位置,我这里用的是 C:\Program Files\ 。接下来在环境变量(控制面板\所有控制面板项\系统 -> 高级系统设置 ->环境变量 -> 选择"Path"单击"编辑")中加入工具链所在的目录,如图

img

为了测试刚才的操作是否成功,按下 Win+R 输入 cmd 打开命令行,分别执行 gcc --version, g++ --versiongdb --version 三个命令。如果没有提示找不到程序并出现与下图类似的结果,那么编译环境算是配置好了

img

接着说一下 VSCode 的配置,VSCode 可以在官网下载,双击安装之后稍等片刻就可以启动了。进入VSCode之后在左侧选择扩展,搜索C/C++安装插件(当然如果不习惯英文版的话可以装个汉化插件,直接搜Chinese安装就有了)

img

接着我们来建一个 C/C++ 项目。新建一个目录(比如说我这里叫 HelloWorld ),在目录下新建一个.c文件(比如说我这里是helloworld.c)。用 VSCode 打开这个文件夹

img

新建一个配置

imgimg

在弹出来的 launch.json 文件中用以下配置覆盖。若在刚才没有进行添加环境变量的操作,则将两处 "gdb.exe" 改为你解压的 MinGW 中 gdb 的完整路径。

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [  
        {  
          "name": "C++ Debug(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示
            "type": "cppdbg",       // 配置类型,这里只能为cppdbg
            "request": "launch",    // 请求配置类型,可以为launch(启动)或attach(附加)  
            "program": "${workspaceRoot}/${fileBasenameNoExtension}.exe",// 将要进行调试的程序的路径  
            "args": [],             // 程序调试时传递给程序的命令行参数,一般设为空即可  
            "stopAtEntry": false,   // 设为true时程序将暂停在程序入口处,一般设置为false  
            "cwd": "${workspaceRoot}", // 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录  
            "environment": [],  
            "externalConsole": false, // 调试时是否显示控制台窗口,一般设置为true显示控制台
            "internalConsoleOptions":"neverOpen",  
            "MIMode": "gdb",  
            "miDebuggerPath": "gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应 
            "preLaunchTask": "g++_compile", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc  
            "setupCommands": [  
                {   
            "description": "Enable pretty-printing for gdb",  
                    "text": "-enable-pretty-printing",  
                    "ignoreFailures": true  
                }  
            ]  
        },
        {  
            "name": "C Debug(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示
              "type": "cppdbg",       // 配置类型,这里只能为cppdbg
              "request": "launch",    // 请求配置类型,可以为launch(启动)或attach(附加)  
              "program": "${workspaceRoot}/${fileBasenameNoExtension}.exe",// 将要进行调试的程序的路径  
              "args": [],             // 程序调试时传递给程序的命令行参数,一般设为空即可  
              "stopAtEntry": false,   // 设为true时程序将暂停在程序入口处,一般设置为false  
              "cwd": "${workspaceRoot}", // 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录  
              "environment": [],  
              "externalConsole": false, // 调试时是否显示控制台窗口,一般设置为true显示控制台  
              "internalConsoleOptions":"neverOpen",
              "MIMode": "gdb",  
              "miDebuggerPath": "gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应  
              "preLaunchTask": "gcc_compile", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc  
              "setupCommands": [  
                  {   
              "description": "Enable pretty-printing for gdb",  
                      "text": "-enable-pretty-printing",  
                      "ignoreFailures": true  
                  }  
              ]  
          }

    ]  
}

接下来在菜单栏上选择“终端”->“配置默认生成任务” ( Terminal -> Configure Default Build Task),一路选择第一个选项,然后再弹出来的 tasks.json 里面用以下配置覆盖

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "g++_compile",
            "command": "g++",
            "args": ["-g","${file}","-o","${workspaceRoot}\\${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
                }
            }
        },
        {
            "label": "gcc_compile",
            "command": "gcc",
            "args": ["-g","${file}","-o","${workspaceRoot}\\${fileBasenameNoExtension}.exe"],
            "problemMatcher": {
                "owner": "c",
                "fileLocation": ["relative", "${workspaceRoot}"],
                "pattern": {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "severity": 4,
                    "message": 5
                }
            }
        }
    ]
}

如果你使用的是旧版 VSCode 或者使用上述配置依然出现编译错误,那么你可能需要再添加一个 c_cpp_properties.json 文件,内容如下(其中 includePath 下面几行需要改为你的MinGW路径,即替换 "C:/Program Files/mingw64" 为你解压出MinGW的路径)

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**",
                "C:/Program Files/mingw64/x86_64-w64-mingw32/include",
                "C:/Program Files/mingw64/include",
                "C:/Program Files/mingw64/opt/include"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "intelliSenseMode": "gcc-x64"
        }
    ],
    "version": 4
}

保存该文件并复制到你的项目目录下的 .vscode 文件夹内即可

按下F5或者在那只小虫里面点运行与调试(绿色的小三角按钮),接着你就可以像任何其他的IDE那样,编辑、调试你的程序啦!

img

你还可以在行号左侧单击,打下断点,观察程序的运行状态。在“监视”一栏中还可以添加表达式

img

本文涉及的 MinGW 的64位安装包与项目模板:

链接: https://pan.baidu.com/s/1UsBPksTneB4n0xoTvIF5JQ 提取码: w788

参考:

  • https://code.visualstudio.com/docs/cpp/config-mingw
  • https://www.cnblogs.com/lsgxeva/p/12122271.html
  • https://www.zhihu.com/question/30315894

评论