基于VSCode和MinGW—开发C/C++的环境部署

1. 安装VSCode与设置MinGW环境变量

安装VSCode与安装VSCode插件,以及设置MinGW环境变量这里不作指导说明,略过。

1.1 安装VSCode

建议安装System版本的🔗VSCode(因为这个版本可以实时在线提示同步官方的更新)。
在这里插入图片描述

1.2 安装MinGW二进制集合

GitHub的离线安装二进制发行版:🔗MinGW_v14.2.0,选择下载名为 x86_64-14.2.0-release-win32-seh-ucrt-rt_v12-rev0.7z 的压缩包。
GitHub的在线安装版:🔗mingwInstaller.exe,安装时的配置选择和上述二进制发行版保持一致即可。
笔者的CSDN资源:🔗https://download.csdn.net/download/ZZLLLLLLZ/89709135?spm=1001.2014.3001.5503

⭐⭐⭐INFO:

  • x86_64表示64bit-cpu架构,i686是32bit-cpu架构的衍生系列,从属于32bit架构;
  • release表示为正式发行版;
  • posix 或 win32指的是线程模型。posix,是 UNIX 系统的 API 设计标准,很多类 UNIX 系统也在支持兼容这个标准,如 Linux 操作系统。如果在 Windows 下开发 Linux 应用程序,则选择 posix;win32,是 Windows 系统的 API 设计标准,如果开发 Windows 平台下的应用程序,就需要选择 win32;
  • seh版本较新只支持64bit,dwarf版本较新只支持32bit,还有个sjlj版本较旧,同时支持32bit和64bit;
  • ucrt兼容C99标准,而msvcrt比较古老,不兼容C99标准。

大家记得设置环境变量,快捷键win+R打开cmd,输入gcc -v确认是否已安装成功。

2. VSCode—“文房四宝”

下面4个文件几乎都是开箱即用,只需要修改少许内容,你可以用于替换掉自己工程下的.vscode文件夹中的4个文件。适用于工程含有单个.c文件多个.c文件的情况,需要修改的地方笔者会加以说明。

2.1 settings.json

⭐⭐⭐NOTE:无需修改,在扩展商店中下载One Dark Modern插件和Dracula插件即可。

{
    // 字符集编码格式
    "files.encoding": "utf8",
    // 设置“严格提醒” = enabled/disabled/enabledIfIncludesResolve
    // "C_Cpp.errorSquiggles": "disabled",
    // 启用文件自动保存
    "files.autoSave": "afterDelay",
    // 项目各文件的图标主题
    "workbench.iconTheme": "office-material-icon-theme",
    // 吸血鬼主题
    "workbench.colorTheme": "Dracula Theme",
    //粘贴时格式化代码
    "editor.formatOnPaste": true,
    //保存时格式化代码
    "editor.formatOnSave": true,
    //设置字体的大小,最小值能设置为6
    "editor.fontSize": 17,
    //设置字体的粗细
    "editor.fontWeight": "500",
    //设置字体的样式
    // "terminal.integrated.fontFamily":"Courier New",
    //使用Ctrl+滚轮缩放编辑区的字体大小
    "editor.mouseWheelZoom": true,
    //使用Ctrl+滚轮缩放终端Terminal的字体大小
    "terminal.integrated.mouseWheelZoom": true,
    //设置为false,这样打开新的文件时,不会自动关闭旧的文件
    "workbench.editor.enablePreview": false,
    /****************************************/
    "files.associations": {
        "stdio.h": "c"
    }
}

2.2 c_cpp_properties.json

⭐⭐⭐NOTE:只需要修改"compilerPath"处,后面改成你安装的MinGW集合的gcc.exe位置。

{
    "configurations": [
        {
            "name": "Win32-C/C++",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "E:/mingw64/bin/gcc.exe",
            "cStandard": "c17",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "gcc-x64"
        }
    ],
    "version": 4
}

2.3 task.json

⭐⭐⭐NOTE:只需要修改"command"处,后面改成你安装的MinGW集合的gcc.exe位置。

{
    //task.json控制构建环节(其实理论上可以控制任何过程),相当于make工具 + makefile
    "tasks": [
        {
            //构建build任务
            "type": "cppbuild",
            "label": "build_task",
            "command": "E:\\mingw64\\bin\\gcc.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-g", //生成和调试有关的信息
                "-Wall", // 开启额外警告
                // "${file}",//(单文件编译)
                // "*.c",//(多文件编译第1种)
                "${fileDirname}\\*.c", //(多文件编译第2种)
                "-o", //指定生成可执行文件的名称
                "${fileDirname}\\${fileBasenameNoExtension}.exe" //生成 单文件名称.exe
                // "${fileDirname}\\execute.exe" //生成 自定义名字.exe
                // "${workspaceFolder}\\${workspaceRootFolderName}.exe", //生成 工程名称.exe
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc" //捕捉编译时编译器在终端里显示的报错信息,将其显示在vscode的‘问题’面板里
            ],
            "group": {
                //把该任务放在build组
                "kind": "build",
                "isDefault": true
            },
            "presentation": {
                "echo": true,
                "reveal": "silent", //隐藏编译任务界面,显示“执行调试命令的过程”和“程序的运行结果”
                "focus": false,
                "panel": "shared",
                "showReuseMessage": true,
                "clear": false
            },
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}

2.4 launch.json

⭐⭐⭐NOTE:只需要修改"miDebuggerPath"处,后面改成你安装的MinGW集合的gdb.exe位置。

{
    //launch.json控制运行和调试环节,相当于openocd工具
    "configurations": [
        {
            "name": "C/C++ Debug",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe", //生成 单文件名称.exe
            // "program": "${fileDirname}\\execute.exe",//生成 自定义名字.exe
            // "program": "${workspaceFolder}\\${workspaceRootFolderName}.exe", //生成 工程名称.exe。与task.json中的exe路径对应
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}", // 调试程序时的工作目录,此处为源码文件所在目录
            "environment": [],
            "externalConsole": false, //true使用cmd终端,false使用vscode内部终端
            "MIMode": "gdb",
            "miDebuggerPath": "E:\\mingw64\\bin\\gdb.exe", //指定调试器所在路径,如果你的minGW装在别的地方,则要改成你自己的路径,注意间隔是\\
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "build_task" //tasks.json中的label对应。launch.json的preLaunchTask字段和tasks.json的lable字段值需保持一致
        }
    ],
    "version": "2.0.0"
}

3. 建立c工程

3.1 工程目录

在这里插入图片描述

3.2 编写c代码demo

#include <stdio.h>
#include <stdlib.h>

typedef enum STA
{
    MON = 1,
    TUE,
    WED,
    THU,
    FRI,
    SAT,
    SUN
} StaNewType; // StaNewType = enum STA

int main(void)
{
    printf("start.");
    unsigned char key_state = 0;
    switch (key_state)
    {
    case MON /* constant-expression */:
        printf("This is 1#\n");
        /* code */
        break;
    case TUE /* constant-expression */:
        printf("This is 2#\n");
        /* code */
        break;
    case WED /* constant-expression */:
        printf("This is 3#\n");
        /* code */
        break;
    case THU /* constant-expression */:
        printf("This is 4#\n");
        /* code */
        break;
    case FRI /* constant-expression */:
        printf("This is 5#\n");
        /* code */
        break;
    case SAT /* constant-expression */:
        printf("This is 6#\n");
        /* code */
        break;
    case SUN /* constant-expression */:
        printf("This is 7#\n");
        /* code */
        break;
    default:
        printf("⭐⭐------------------------illegal!------------------------⭐⭐");
        break;
    }
    return 0;
}

3.3 运行代码

在这里插入图片描述
点击右上角运行按钮或快捷键ctrl+alt+N,编译并执行code,得到如下结果:
在这里插入图片描述

3.4 调试代码

鼠标点击VSCode左侧的小虫子,再点击“运行和调试”的绿色小三角按钮
在这里插入图片描述
正常调试中………………
在这里插入图片描述

4. 可能出现的问题解决方法

4.1 Run运行代码只有按钮,没有对应的快捷键

1)设置—>键盘快捷方式
在这里插入图片描述
2)在弹出的搜索框中输入C/C++: 运行 C/C++ 文件,点击键绑定,设置偏爱的快捷键(我这里已经设置好了)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值