为 VSCode 配置 C 语言编译环境

1. 前提条件

安装 VSCode 以及 MinGW

安装好 VSCode 中的 C/C++ 扩展
[图片上传失败...(image-e93c7c-1606314000230)]

PS: 我建议使用 chocolatey 安装,这样可以自动配置好环境变量

运行下列命令检查是否已经配置好环境变量:

gcc --version
gdb --version

2. 配置 VSCode

2.1. 创建工作文件夹

打开 Windows 的 Command Prompt,运行下列命令:(建立一个叫 project 的文件夹,里面将会放置你的程序文件,然后建立一个叫 helloworld 的子文件夹,进到子文件夹,打开 VSCode )

mkdir projects
cd projects
mkdir helloworld
cd helloworld
code .

最后的 code . 命令会在当前文件夹打开 VSCode ,当前文件夹随即变成当前的 workspace

2.2. 创建C语言的源代码文件

点击创建新文件,命名为 helloworld.c

image

在源代码文件内输入:

#include 

int main() {
    printf("Hello World!\n");
    
    return 0;
}

保存源代码文件

2.3. 编译C语言的源代码

这一步我们需要创建一个 tasks.json 文件来告诉VSCode如何编译C语言的源代码。

在菜单中选择 Terminal > Configure Default Build Task 。随后会出现一个下拉菜单,里面会有 VSCode 预设的一些编译选项。我们这里选择 gcc.exe 这一项。

image

选中之后,VSCode 在当前工作文件夹下面的一个 .vscode 的文件夹中自动创建了一个 tasks.json 文件,文件内容看起来可能是这样的:

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: gcc.exe build active file",
            "command": "C:\\ProgramData\\chocolatey\\bin\\gcc.exe",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "C:\\ProgramData\\chocolatey\\bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "compiler: C:\\ProgramData\\chocolatey\\bin\\gcc.exe"
        }
    ]
}

其中 commend 选项给出了具体执行编译任务的程序文件,在这里就是我们刚才选择的 gcc.exeargs 选项给出的是运行编译任务时传递给 gcc 的参数。

具体内容可以参考 Visual Studio Code Variables Reference

创建好 tasks.json 之后,我们可以进行编译了。在菜单中选择 Terminal > Run Build Task

如果编译成功,你应该可以看到一个与源代码同名的 exe 可执行文件

2.4. 调试C语言的源代码

这一步我们需要创建一个 launch.json 文件来告诉 VSCode 如何编译 C 语言的源代码,即按下 F5 时启动 GDB 调试器。

在菜单中选择 Run > Add Configuration ,然后选择 C++ (GDB/LLDB) 。随后会出现一个下拉菜单,里面会有一些预设的调试配置。我们这里选择 gcc.exe 这一项。

VSCode 就会自动创建一个 launch.json 文件,同时编译并运行调试当前的 helloworld

launch.json 文件看起来可能是这样:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "gcc.exe - 生成和调试活动文件",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": true,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "C:\\ProgramData\\chocolatey\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "C/C++: gcc.exe build active file"
        }
    ]
}

其中 program 指定要进行调试的程序。

默认情况下,源代码中不会自动设置断点,我们可以把 stopAtEntry 的值改成 true ,这样在调试的时候,即便没有添加任何断点,调试也会停止在 main 函数的入口。

注意:preLaunchTask 指定调试之前需要执行的任务,需要确保其与 task.json 中的 label 的值一致。

2.5. 其他配置

如果希望调控更多的参数,我们可以创建一个 c_cpp_properties.json 文件,其中可以修改编译器的路径、头文件 (include) 的路径以及编译器使用的标准(如c99)等参数。

可以在 Command Palette (Ctrl+Shift+P) 中运行 C/C++: Edit Configurations (UI) 来查看这些参数,如果对参数进行了修改,VSCode 会把这些修改写入 c_cpp_properties.json 文件中。

image

这里我们把 C 语言的标准改为 c11 ,也可以不修改。

参考链接
  1. Get Started with C++ and Mingw-w64 in Visual Studio Code

你可能感兴趣的:(为 VSCode 配置 C 语言编译环境)