一、前言:

使用vscode编写单页面的小程序还是很方便的,但是,它不是集成开发环境,编写相应的程序,比如C语言,需要安装对应的插件和扩展,配置起来相对比较麻烦一些,但是用熟练了就非常好用,无论是调试还是编码,vscode都相当强大,毕竟是微软的玩意,下边总结一下:如何使用vscode来编写C语言。

1:

首先下载vscode,地址:https://code.visualstudio.com/

2:

然后对vscode进行汉化(看个人习惯,我这里汉化了一下),在vscode的左方功能列表中,可以找到 Extensions,点选后输入 “Chinese” 即可搜寻到中文的相关语系,选择中文(繁体)后页面的右方即会出现相关介绍,此时按下 “Install” 就会安装中文语系套件。

3:

安装后系统会自动跳出是否切换成该语系,让你重新启动,按下 ResStart now后就会套用成中文版啰~如下:

android vscode 单步调试 vscode单步调试c语言_环境变量

android vscode 单步调试 vscode单步调试c语言_匹配问题_02

不过人生中最怕的就是那个 “But”,如果没有自动跳出右下方的提示该如何切换呢?另外 VSCode 如果更新时,可能也会再次切换为英文版,这时候就需要手动切换语系。

手动切换流程也并不复杂,可使用以下三个步骤手动切换

1:按下 ctrl + shift + P(Mac 版请按下 cmd + shift + P)

2:输入 display language 就会跳出 “Configure Display Language”

3:选择安装的语系 “zh-tw” 即可安装

 

然后开始进入主题,在桌面新建一个文件夹,取名为:ZZULIOJ,然后进入该文件夹,对着资源管理器里的路径进行cmd,输入:code .   (后边的点别忘了)如下:

android vscode 单步调试 vscode单步调试c语言_json_03

 

android vscode 单步调试 vscode单步调试c语言_环境变量_04

这个时候,vscode就默认打开该文件夹,进入到环境当中了,如下:

android vscode 单步调试 vscode单步调试c语言_匹配问题_05

在左边可以再新建文件夹,或者一些文件等等...

接下来安装编写C语言需要的插件和配置环境变量,如下

1:首先在vscode里安装两个扩展,分别是C/C++和code runnne

android vscode 单步调试 vscode单步调试c语言_json_06

android vscode 单步调试 vscode单步调试c语言_android vscode 单步调试_07

2:然后接着下载MinGW,解压到相应盘中(我这里解压到了D盘)然后配置环境变量,环境变量的配置我这里配置了两个,一个就是在系统环境变量中原有的path后边加上解压后的MinGW的路径,即到bin的路径(我的是:D:\MinGW\bin),还有一个是INCLUDE环境变量,首先检查自己的系统环境变量里有没有INCLUDE,如果没有就新建一个,然后把mingw的include路径加进去,(我的是:D:\MinGW\include),然后打开cmd,在窗口里输入gcc -v,如下:

android vscode 单步调试 vscode单步调试c语言_匹配问题_08

即成功了

3:然后创建配置文件,我们需要创建三个json文件,分别是:launch.json,task.json,setting.json

首先创建task.json。按Ctrl+shift+b,

android vscode 单步调试 vscode单步调试c语言_android vscode 单步调试_09

点击如上图中的文字:没有找到要运行的生成任务......结果如下:

android vscode 单步调试 vscode单步调试c语言_json_10

再继续点击:使用模板创建task.json文件,出现如下页面:

android vscode 单步调试 vscode单步调试c语言_环境变量_11

点击最后一个,即可生成task.json文件。将里边的内容替换,如下:

 

{
    // 有关 tasks.json 格式的参考文档:https://go.microsoft.com/fwlink/?LinkId=733558 。
    "version": "2.0.0",
    "tasks": [{
        "label": "gcc",
        "type": "shell", // { shell | process }
        // 适用于 Windows 的配置:
        "windows": {
            "command": "gcc",
            "args": [
                "-g",
                "\"${file}\"",
                "-o",
                "\"${fileDirname}\\${fileBasenameNoExtension}.exe\""
                // 设置编译后的可执行文件的字符集为 GB2312:
                // "-fexec-charset", "GB2312"
                // 直接设置命令行字符集为 utf-8:
                // chcp 65001
            ]
        },
        // 定义此任务属于的执行组:
        "group": {
            "kind": "build", // { build | test }
            "isDefault": true // { true | false }
        },
        // 定义如何在用户界面中处理任务输出:
        "presentation": {
            // 控制是否显示运行此任务的面板。默认值为 "always":
            // - always:    总是在此任务执行时显示终端。
            // - never:     不要在此任务执行时显示终端。
            // - silent:    仅在任务没有关联问题匹配程序且在执行时发生错误时显示终端
            "reveal": "silent",
            // 控制面板是否获取焦点。默认值为 "false":
            "focus": false,
            // 控制是否将执行的命令显示到面板中。默认值为“true”:
            "echo": false,
            // 控制是否在任务间共享面板。同一个任务使用相同面板还是每次运行时新创建一个面板:
            // - shared:     终端被共享,其他任务运行的输出被添加到同一个终端。
            // - dedicated:  执行同一个任务,则使用同一个终端,执行不同任务,则使用不同终端。
            // - new:        任务的每次执行都使用一个新的终端。
            "panel": "dedicated"
        },
        // 使用问题匹配器处理任务输出:
        "problemMatcher": {
            // 代码内问题的所有者为 cpp 语言服务。
            "owner": "cpp",
            // 定义应如何解释问题面板中报告的文件名
            "fileLocation": [
                "relative",
                "${workspaceFolder}"
            ],
            // 在输出中匹配问题的实际模式。
            "pattern": {
                // The regular expression.
                "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                // 第一个匹配组匹配文件的相对文件名:
                "file": 1,
                // 第二个匹配组匹配问题出现的行:
                "line": 2,
                // 第三个匹配组匹配问题出现的列:
                "column": 3,
                // 第四个匹配组匹配问题的严重性,如果忽略,所有问题都被捕获为错误:
                "severity": 4,
                // 第五个匹配组匹配消息:
                "message": 5
            }
        }
    }]
}

 

然后点击F5,选择GDB/LLDB,如下:

android vscode 单步调试 vscode单步调试c语言_json_12

就会生成launch.json文件,将里边的内容替换为:

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    // "program": "${fileDirname}/${fileBasenameNoExtension}.exe",
    // "program": "${workspaceFolder}/Demo/${fileBasenameNoExtension}.exe",
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "miDebuggerPath": "D:\\MinGW\\bin\\gdb.exe",
            "preLaunchTask": "gcc",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

其中miDebuggerPath是你自己的MinGW中的gdb.exe路径

最后对着左边空白处,右键新建文件,取名为:setting.json,如下:

android vscode 单步调试 vscode单步调试c语言_匹配问题_13

 内容为:

{
    "files.associations": {
        "tidl_alg_int.h": "c",
        "limits": "c"
    }
}

到这里就结束了,测试如下:

在根目录下新建一个文件夹 取名为Demo,在里边再新建一个1000文件夹,在1000文件夹里新建1000.c文件(这个随意),代码如下:

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int a, b, sum;
    scanf ("%d %d", &a, &b);
    sum = a + b;
    printf("%d\n", sum);
    system("pause");
}

点击F5运行:

android vscode 单步调试 vscode单步调试c语言_匹配问题_14

文件夹随意建,编译器都能找到你的C语言文件,因为上边的launch.json中,我们配置的是:动态获取文件夹路径,动态获取的文件名称!!!

完成!