Hello World! - VS Code 与 C/C++

· · 科技·工程

本文是 VS Code 和 C/C++ 扩展的安装与配置教程,如有不足,请在评论区指正

注意:本文有部分内容引用了 OI Wiki,遵照原作者的要求,本文使用 CC-SA-BY-NC 2.0 协议共享

安装 Visual Studio Code

Windows 10 及以上

下载

如果你使用 Windows 7/8/8.1

点击上面的链接后点击 Releases,找到 1.70.2,这是最后支持 Windows 7/8/8.1 的版本,前往发布页面下载

配置中文

安装好后,点击左侧活动栏的“扩展”,搜索Chinese(Simplified),点击安装。安装好后按Ctrl+Shift+P,搜索Display,选择Configure Display Language,切换为中文

安装 C/C++ 扩展

安装好 VS Code 后,重复上一步,安装C/C++

安装 GCC

安装引导 - OIWiki

配置环境

新建一个目录,这将是代码的存放位置。

在 VS Code 中选择文件 -> 打开文件夹,打开刚才新建的文件夹。

自动配置(推荐)

  1. 在 VS Code 中新建一份 C++ 代码文件,按照 C++ 语法写入一些内容,保存并按下F5,进入调试模式。
  2. 如果出现了选择调试器的提示,选择 C++ (GDB/LLDB)
  3. 选择配置中,G++ 选择 g++.exe - 生成和调试活动文件

手动配置

在此目录中新建一个文件夹,名为 .vscode

调试器(运行代码)

在 VS Code 中新建 .vscode/launch.json,代码如下:

{
    "version": "0.2.0",
    "configurations": [
      {
        "name": "C/C++ 调试", // 配置名称
        "type": "cppdbg", // 类型,仅限 cppdbg 即 CPP DEBUG
        "request": "launch",
        "program": "${fileDirname}\\${fileBasenameNoExtension}.exe", // 目标程序,即编译后的二进制程序
        "args": [],
        "stopAtEntry": false, // 是否在开始前打断点
        "cwd": "你的 MinGW 路径\\bin",
        "environment": [],
        "externalConsole": false, // 是否产生控制台窗口,如果设为 False 则在编辑器下方调试
        "MIMode": "gdb",
        "miDebuggerPath": "gdb",
        "setupCommands": [
          {
            "description": "为 gdb 启用整齐打印",
            "text": "-enable-pretty-printing",
            "ignoreFailures": true
          },
          {
            "description": "将反汇编风格设置为 Intel",
            "text": "-gdb-set disassembly-flavor intel",
            "ignoreFailures": true
            // VS Code 中的“反汇编”是一个类似 Dev_C++ 中 CPU 窗口的功能,用于查看汇编代码
          }
        ],
        "preLaunchTask": "C/C++: gcc.exe 生成活动文件"
      }
    ]
}

至此,调试器的部分已经写好,现在链接 GCC,也就是 C/C++: gcc.exe 生成活动文件 的任务

编译器

同上,新建 .vscode/tasks.json

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: gcc.exe 生成活动文件",
            "command": "你的 MinGW 路径\\bin/gcc.exe",
            "args": [
                "-fdiagnostics-color=always",
                // 添加你需要的参数,如 "-O2",结尾加逗号
                "-g", // 允许调试
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe" // 这条命令会处理文件名,如:a.cpp -> a.exe
            ],
            "options": {
                "cwd": "你的 MinGW 路径\\bin"
            },
            "problemMatcher": [
                "$gcc" // 按照 GCC 标准识别异常
            ],
            "group": {
                "kind": "build", // 生成
                "isDefault": true // 默认
            },
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}

自动显示异常(InteliSense)

新建 .vscode/c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "你的 MinGW 路径\\bin/gcc.exe",
            "cppStandard": "c++11", // 你使用的 C++ 标准
            "intelliSenseMode": "windows-gcc-x64",
        }
    ],
    "version": 4
}

检查

当你看到这里,恭喜你!完成了 C/C++ 的配置,现在你的目录应该是这样

书写程序

Ctrl + N,点击 选择语言,点击 CC++,编写程序。

此时状态栏右侧应该是此状态

行/列 空格/制表符长度 UTF-8 CRLF { }C++ Win32

Ctrl + Shift + B 开始编译,编译完成会显示

生成已成功完成。
 *  终端将被任务重用,按任意键关闭。

F5 编译并运行,在 VS Code 中,运行与调试的方法相同

开始编程之旅吧!

调试你的代码

与 Dev-C++ 不同,在 VS Code 中,通过点击行号左侧的区间来设置/取消断点,类似这样:

  1 #include <bits/stdc++.h>
  2 using namespace std;
  3 
  4 int main()
  5 {
  6     // Some Code...
●7      for (int i = 1; i <= n; i++) // 这是断点
  8     {
  9         // Some Code...
  10        }
  11        // Some Code...
  12        return 0;
  13    }

添加好断点后,按下F5开始调试,此时代码上方会出现浮动工具栏:

这是浮动工具栏按钮的解释:

(移动工具栏) 跳过(continue) 下一步(next) 单步进入 单步跳出 重新开始 暂停/停止

此时,调试主菜单会自动展开,如果没有,就点击左侧的调试按钮(开始调试后会显示蓝色角标)

在“调试”主菜单中,可以进行以下操作:

在调试模式中,编辑器将以黄色底色显示下一步将要执行的代码。

此时就可以进行单步调试了

管理版本

提交更改

前置:请先下载 Git完成配置

点击左侧源代码管理,点击初始化仓库,初始化一个 Git Repo

界面:

源代码管理

消息(Ctrl+Enter 在"master"提交)

✅ 提交

更改

Untitled-1.cpp U 这里的 U 指“未跟踪”,就是新文件

输入消息(描述你的更改,如新建文件 Untitled.cpp

点击要提交的文件右侧的 + ,点击提交,文件就会永久保存

之后修改代码时,也要记得提交

回滚更改

如果我们错误地修改了文件,可以进行回滚。

  1. 打开要回滚的文件,选择资源管理器下方的时间线,点击右上角的 ... 取消选择本地历史记录,仅保留Git 历史记录

  2. 点击一条提交

  3. 可以看到,编辑器变成了分屏,左边是点击的更改,右边是保存的文件,点击中间分割线上的 → 即可回滚这个区域

  4. 再次提交更改,回滚就会保存

GitHub Copilot

注意:在目前的官方 OI/XCPC 比赛中禁止使用生成式 AI

在新版本的 VS Code 中内置有 GitHub Copilot,可以生成和检查代码

登录或注册 GitHub

如果你没有 GitHub,你可以点击 GitHub 注册一个

打开 VS Code,点击标题栏右侧的 Copilot 按钮,右侧会打开一个侧栏,登录 GitHub 后即可使用

Copilot Chat/Edit

Copilot Chat 是默认模式,用于生成代码

Copilot Edit 用于在整个项目中更改,点击侧栏标题栏的第二个按钮来切换

使用 CPH 自动评测

CPH (Competitive Programming Helper) 是一个 VS Code 插件,用于自动进行数据拉取和评测,以下是使用教程:

安装 CPH

点击左侧活动栏的“扩展”,搜索CPH,点击安装

注意安装官方版本

安装 CC

打开 Crxsoso,搜索 Companion,安装到浏览器

特殊:如果你使用新版本浏览器

在新版的浏览器中,安装可能无法自动进行,打开扩展页面,打开 开发者模式,此时在下载目录下将 crx 文件拖入即可

配置 CPH

回到 VS Code 打开设置,搜索 CPH,找到默认语言,选择 CC++ 即可

拉取测例和评测

在 OJ 中找到一道题,点击扩展栏中绿色加号图标,这会跳转至 VS Code,然后创建一个与题目同名的文件

这时左侧会显示测例,点击 Run All 评测

参加比赛

在进行中的比赛的题目列表中,点击扩展栏中绿色加号图标,这会跳转至 VS Code,然后开始初始化比赛,等待所有文件创建完成后,点开第一道题,开始吧!

特别鸣谢

OI Wiki: 提供 GCC 和 Git 安装引导

End