Windows10下VSCode搭建C语言开发环境

1,014 阅读3分钟

1. 前言

Visual Studio Code搭建C语言的开发环境,网上有一大堆的教程,但是很多都要么过时了,要么就是不能运行,自己也踩了好几个坑。

比较好的策略就是官网教程+B站+知乎,尤其是B站的教学视频非常的多,播放量前几的都是很良心的。本文最后也会给出相应的B站链接,感谢这些博主的贡献。

2. 下载安装VSCode以及MinGW

2.1 下载安装VSCode

  1. 官网下载安装符合自己操作系统的安装包,我这里安装的是VSCodeSetup-x64-1.40.2 官网下载VSCode安装包 Windows System Installer 64 bit

  2. 一路点点点,需要注意一点,出现以下界面时注意把这些都勾上。

evernotecid://C752F8C9-B194-46B2-A601-59A7CA7E2F0A/appyinxiangcom/15822042/ENResource/p101

image.png

安装成功后打开是这个界面:

DF4A2CCF-59FE-476E-BAD4-5F71A692429C.png

2.2 下载安装MinGW-w64

  1. 下载软件,我这里是下载的x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z

  2. 解压软件,下载完成后解压软件,并把里面的文件夹mingw64放到C盘的根目录下。

  3. 添加mingw64里面的bin文件夹到系统环境变量。

  4. 进入windows控制台检验是否添加成功。

若成功则如下图:

413765ED-F23B-4F0B-BEBD-7AF0B2874771.png

3. 安装VSCode的C语言插件

  1. Chinese (Simplified) Language Pack for Visual Studio Code插件,安装了这个插件,VSCode就变为中文界面了,对新手就友好多了。

  2. C/C++插件,写C/C++的插件。

  3. Code Runner插件,一键运行C/C++/Python/Java等语言程序的插件。注意,这里需要配置一下配置扩展配置,把run in terminal勾选上。

7B0B0C63-5179-4601-8B63-62079F501F8F.png

4. 配置C语言开发环境

另外要使用VSCode完成C语言开发环境的配置,需要配置三个文件。在电脑桌面新建一个C文件夹,然后在里面新建以下两个文件夹。注意:路径里面一定不能有中文出现。

517A30DF-5613-4D3D-8405-BC95D8658168.png

然后再在.vscode中新建以下三个文件。

691B619F-3FA4-4707-87CD-745D8B559EC6.png

4.1 配置c_cpp_properties.json

{
    "configurations": [
        {
            "name": "MinGW64",
            "intelliSenseMode": "gcc-x64",
            "compilerPath": "C:\\mingw64\\bin\\gcc.exe",
            "includePath": [
                "${workspaceFolder}"
            ],
            "cStandard": "c11"
        }
    ],
    "version": 4
}

这里你需要把 "compilerPath": "C:\\mingw64\\bin\\gcc.exe" 换成你的安装路径,如果你和我一样,默认就好。

4.2 配置launch.json文件

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "C Launch (GDB)", // 配置名称,将会在启动配置的下拉菜单中显示
            "type": "cppdbg", // 配置类型,这里只能为cppdbg
            "request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
            "targetArchitecture": "x64", // 生成目标架构,一般为x86或x64
            "program": "${fileDirname}/build/${fileBasenameNoExtension}.exe", // 将要进行调试的程序的路径
            "args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可
            "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false
            "cwd": "${workspaceRoot}", // 调试程序时的工作目录,一般为${workspaceRoot}
            "externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台
            "internalConsoleOptions": "neverOpen", // 如果不设为neverOpen,调试时会跳到“调试控制台”选项卡",
            "MIMode": "gdb", // 指定连接的调试器
            "miDebuggerPath": "C:\\mingw64\\bin\\gdb.exe", // 调试器路径
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for GDB",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": false
                }
            ],
            "preLaunchTask": "compile" 
        }
    ]
}

注意,这里你需要把 "miDebuggerPath": "C:\\mingw64\\bin\\gdb.exe" 换成你的安装路径,如果你和我一样,默认就好。

4.3 配置tasks.json文件

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "compile",
            "command": "gcc",
            "args": [
                "${file}", // 指定编译源代码文件             
                "-o",
                "${fileDirname}/build/${fileBasenameNoExtension}.exe", // 指定输出文件名
                "-O0", // 优化级别
                "-ggdb3", // 生成和调试有关的信息
                "-Wall", // 开启额外警告
                "-std=c11", // 使用c11标准
                "-Wno-format",
                "-finput-charset=UTF-8", //输入编译器文本编码 默认为UTF-8
                "-fexec-charset=GB18030",
                "-D _USE_MATH_DEFINES"
            ],

            "type": "shell",
            
            "group": {
                "kind": "build",
                "isDefault": true
            },

            "presentation": {
                "echo": true,
                "reveal": "always", // 在“终端”中显示编译信息的策略,可以为always,silent,never
                 "focus": false,
                 "panel": "shared" // 不同的文件的编译信息共享一个终端面板
            },
        }
    ]
}

5. 测试C语言开发环境

新建一个for_example.c文件。可以按F5进行调试,或者直接右键run coderun code成功会输出如图所示。

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

/* print Fahrenheit-Celsius table */
main()
{
    int fahr;

    for (fahr = 0; fahr <= 300; fahr = fahr + 20)
        printf("%3d %6.1f \n", fahr, (5.0/9.0) * (fahr - 32));
    system("pause");
}

1F200BFF-7C53-455E-89A8-5ED138CFD583.png