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

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

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

    为了测试刚才的操作是否成功,按下 Win+R 输入 cmd 打开命令行,分别执行 gcc --version, g++ --versiongdb --version 三个命令。如果没有提示找不到程序并出现与下图类似的结果,那么编译环境算是配置好了
    Snipaste_2020-03-19_18-24-07.png
    接着说一下 VSCode 的配置,VSCode 可以在官网下载,双击安装之后稍等片刻就可以启动了。进入VSCode之后在左侧选择扩展,搜索C/C++安装插件(当然如果不习惯英文版的话可以装个汉化插件,直接搜Chinese安装就有了)
    Snipaste_2020-03-19_18-32-38.png
    接着我们来建一个 C/C++ 项目。新建一个目录(比如说我这里叫 HelloWorld ),在目录下新建一个.c文件(比如说我这里是helloworld.c)。用 VSCode 打开这个文件夹
    Snipaste_2020-03-19_18-40-18.png
    新建一个配置
    Snipaste_2020-03-19_19-03-01.pngSnipaste_2020-03-19_18-58-43.png

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

    1. {
    2. // 使用 IntelliSense 了解相关属性。
    3. // 悬停以查看现有属性的描述。
    4. // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    5. "version": "0.2.0",
    6. "configurations": [
    7. {
    8. "name": "C++ Debug(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示
    9. "type": "cppdbg", // 配置类型,这里只能为cppdbg
    10. "request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
    11. "program": "${workspaceRoot}/${fileBasenameNoExtension}.exe",// 将要进行调试的程序的路径
    12. "args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可
    13. "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false
    14. "cwd": "${workspaceRoot}", // 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录
    15. "environment": [],
    16. "externalConsole": false, // 调试时是否显示控制台窗口,一般设置为true显示控制台
    17. "internalConsoleOptions":"neverOpen",
    18. "MIMode": "gdb",
    19. "miDebuggerPath": "gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应
    20. "preLaunchTask": "g++_compile", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, cgcc
    21. "setupCommands": [
    22. {
    23. "description": "Enable pretty-printing for gdb",
    24. "text": "-enable-pretty-printing",
    25. "ignoreFailures": true
    26. }
    27. ]
    28. },
    29. {
    30. "name": "C Debug(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示
    31. "type": "cppdbg", // 配置类型,这里只能为cppdbg
    32. "request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
    33. "program": "${workspaceRoot}/${fileBasenameNoExtension}.exe",// 将要进行调试的程序的路径
    34. "args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可
    35. "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false
    36. "cwd": "${workspaceRoot}", // 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录
    37. "environment": [],
    38. "externalConsole": false, // 调试时是否显示控制台窗口,一般设置为true显示控制台
    39. "internalConsoleOptions":"neverOpen",
    40. "MIMode": "gdb",
    41. "miDebuggerPath": "gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应
    42. "preLaunchTask": "gcc_compile", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, cgcc
    43. "setupCommands": [
    44. {
    45. "description": "Enable pretty-printing for gdb",
    46. "text": "-enable-pretty-printing",
    47. "ignoreFailures": true
    48. }
    49. ]
    50. }
    51. ]
    52. }

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

    1. {
    2. // See https://go.microsoft.com/fwlink/?LinkId=733558
    3. // for the documentation about the tasks.json format
    4. "version": "2.0.0",
    5. "tasks": [
    6. {
    7. "label": "g++_compile",
    8. "command": "g++",
    9. "args": ["-g","${file}","-o","${workspaceRoot}\\${fileBasenameNoExtension}.exe"],
    10. "problemMatcher": {
    11. "owner": "cpp",
    12. "fileLocation": ["relative", "${workspaceRoot}"],
    13. "pattern": {
    14. "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
    15. "file": 1,
    16. "line": 2,
    17. "column": 3,
    18. "severity": 4,
    19. "message": 5
    20. }
    21. }
    22. },
    23. {
    24. "label": "gcc_compile",
    25. "command": "gcc",
    26. "args": ["-g","${file}","-o","${workspaceRoot}\\${fileBasenameNoExtension}.exe"],
    27. "problemMatcher": {
    28. "owner": "c",
    29. "fileLocation": ["relative", "${workspaceRoot}"],
    30. "pattern": {
    31. "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
    32. "file": 1,
    33. "line": 2,
    34. "column": 3,
    35. "severity": 4,
    36. "message": 5
    37. }
    38. }
    39. }
    40. ]
    41. }

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

    1. {
    2. "configurations": [
    3. {
    4. "name": "Win32",
    5. "includePath": [
    6. "${workspaceFolder}/**",
    7. "C:/Program Files/mingw64/x86_64-w64-mingw32/include",
    8. "C:/Program Files/mingw64/include",
    9. "C:/Program Files/mingw64/opt/include"
    10. ],
    11. "defines": [
    12. "_DEBUG",
    13. "UNICODE",
    14. "_UNICODE"
    15. ],
    16. "intelliSenseMode": "gcc-x64"
    17. }
    18. ],
    19. "version": 4
    20. }

    保存该文件并复制到你的项目目录下的 .vscode 文件夹内即可
    按下F5或者在那只小虫里面点运行与调试(绿色的小三角按钮),接着你就可以像任何其他的IDE那样,编辑、调试你的程序啦!
    Snipaste_2020-03-19_19-31-29.png

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

    本文涉及的 MinGW 的64位安装包与项目模板:
    链接: https://pan.baidu.com/s/1UsBPksTneB4n0xoTvIF5JQ 提取码: w788

    参考: