Featured image of post 在 Windows 上用 vscode 进行 C++ 开发

在 Windows 上用 vscode 进行 C++ 开发

本文写的内容已经过时。现在(2023 年 6 月),建议选择的编译器是 llvm-mingw,并使用 Clangd 插件获取 C/C++ 支持。mingw-w64 较老,不建议使用。

时至今日,许多大学所使用的 C++ IDE 还是 Dev-C++ 和 VC++6.0 等十分落后的软件,故作此文,以帮助各位使用更加方便易用的 C++ 开发环境。

为什么要用 vscode?

Visual Studio Code 是微软出品的一个编辑器,界面美观、打开文件流畅。同时,它具有大量的插件,而大量的插件使它有极高的可扩展性,可用于几乎任何语言的开发,还可以打游戏、听音乐、看 PDF。

作为微软的产品,当家功能 IntelliSense 必不可少。在你写代码时,它可以自动为你补全函数名、括号、变量名等字段,再也不用因太长的变量名敲起来麻烦而烦躁了。

同时,它还与 WSL(Linux Windows 子系统)高度兼容,在 Windows 环境内编程,在 Linux 环境下编译与调试。也可以通过 SSH 直连你的服务器,借用服务器的资源与性能。

另外,vscode 是开源项目,这意味着你甚至可以将它移植,做一个自己的版本出来。

安装 vscode

我使用的环境是一个虚拟机,8 个 AMD Zen 2 线程、6.5G RAM、外置机械硬盘、Windows 10 x64 20H2 19042.508。理论上只有系统版本会影响一些步骤,但是 20H2 或者 21H1 版本所使用的步骤应该基本类似。

先在 官方网站 上点击 “Download for Windows” 按钮下载 vscode 安装包。

官方网站

下载安装包之后安装,建议将如下图的 “添加到 PATH” 选中。

安装界面

vscode 本体就安装完成了。

安装编译器

vscode 毕竟只是个编辑器,说白了就是个高级的记事本,想要调试,必须配合插件和编译器。这里讲述如何安装编译器。

GCC/G++ 编译器是 Linux 平台上非常流行的 C/C++ 编译器,但它与 Windows 不兼容,于是有人用它的源代码构建了各种 Windows 变种,功能同样丰富。

我这里使用 mingw-w64,8.1.0 版本,以与微软官方教程达到最大匹配。你也可以选择 TDM-GCC,基于 G++ 9.2,版本更新,但是请自行对照下面的部分修改你的安装路径。

SourceForge 下载 MinGW-W64-install.exe。也可以下载 x86_64-posix-seh 包,然后手动按照下面所提到的安装路径解压。

下载 MinGW

下载之后打开,然后按照下图选择版本。

安装 MinGW

然后点击 Next,程序会自动下载在线安装包。在某些网络环境下,下载可能很慢,所以建议留出充足的时间,或者挂 VPN 下载。

安装完成之后,打开 PowerShell 或者 CMD,输入 g++ -v 并回车,检查是否正确显示了 G++ 的版本。

(PS:推荐安装 新版 PowerShellWindows Terminal,更美观,使用起来更有效率。当然,不装也没什么坏处)

如果出现下图中的情况,则还需要配置环境变量。

不在 PATH

如果你的输出类似于下面那样,COLLECT_GCC 的路径和 gcc version 也完全相同,那么可以直接跳过下一步。如果那两项不太一样,也请看下一步。

在 PATH

配置环境变量

先讲原理。如果我们要调用 G++,按理说应该在 PowerShell 或者 CMD 中输入完整路径并运行。这样的输出是正确的。(注意语句后面有一个 - v,不太明显)

使用完整路径调用 GCC

但每次打命令都需要输命令,那也太麻烦了。而 Windows 的 PATH 环境变量能够解决这个问题。加入 PATH 的目录中的程序使用时,可以将前面的目录省去,直接使用文件名。在调用时,会自动检索 PATH 文件夹,找到符合这个名字的文件夹并调用。将编译器加入环境变量后,就可以看到上一步最后的效果。

打开 Windows 设置 - 系统 - 关于 - 高级系统设置,点击 “环境变量”。

高级系统设置

在弹出窗口中选择 PATH。如果你选择 “用户变量“中的 PATH,则这个编译器快捷方式只对你一个人有效;否则,就对整个电脑有效。然后点击” 新建“,粘贴 g++.exe 所在的路径(如果你上面全程按照我的方法安装,则填入 C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin)。全都点击确定,如下图。

如果你之前安装过其他版本 G++(包括 Dev-C++ 可能附带的),环境变量中出现了那个路径,而又不知道后面该怎么修改,建议将刚刚添加的上移到原有的那一个上方。

环境变量

再输入 g++ -v 回车,查看效果。

安装插件

vscode 的灵魂就是丰富的插件。刚安装完的 vscode 是类似于这样的:

全新安装 VS Code

对于 C++ 编程,我建议下载下面的插件:

  • C/C++
  • Chinese (Simpified) Language Pack for Visual Studio Code
  • Better C++ Syntax
  • C/C++ Themes
  • CMake
  • CMake Tools
  • C++ IntelliSense

非必需:

  • Rainbow Brackets
  • GitLens - Git supercharged(当你有 Git 时,没有的话不必要)
  • Remote - WSL

安装完成后重启 vscode。

配置 JSON 首选项

在 vscode 左边的资源管理器中打开一个文件夹,右下角会提示下载一些文件,可以等一下。

打开文件夹

打开后的文件夹形成了一个工作区。在里面再新建一个名为. vscode 的文件夹。然后在文件夹里新建 launch.json 和 tasks.json 两个文件。

在 tasks.json 中粘贴这段代码:

json
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
{
  "version": "2.0.0",
  "tasks": [
    {
      "type": "shell",
      "label": "C/C++: g++.exe build active file",
      "command": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin\\g++.exe",
      "args": ["-g", "${file}","-o","${fileDirname}\\${fileBasenameNoExtension}.exe"],
      "options": {
        "cwd": "${workspaceFolder}"
      },
      "problemMatcher": ["$gcc"],
      "group": {
        "kind": "build",
        "isDefault": true
      }
    }
  ]
}

在 launch.json 中粘贴这段代码:

json
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "g++.exe - Build and debug active file",
      "type": "cppdbg",
      "request": "launch",
      "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
      "args": [],
      "stopAtEntry": false,
      "cwd": "${workspaceFolder}",
      "environment": [],
      "externalConsole": false,
      "MIMode": "gdb",
      "miDebuggerPath": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin\\gdb.exe",
      "setupCommands": [
        {
          "description": "Enable pretty-printing for gdb",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        }
      ],
      "preLaunchTask": "C/C++: g++.exe build active file"
    }
  ]
}

然后保存。”.vscode“文件夹保存的是 vscode 的配置文件,程序不需要存放在这个目录里。

vscode 使用初步

之后,新建一个 test.cpp,随便写点啥。如果一切正常的话,这个时候自动补全功能就该生效了。当光标右下方出现自动补全栏的时候,上下方向键选择候选项,按 tab 自动补全。可以补全的内容包括但不限于函数名、变量名、语句、include 文件。

如果发现代码可能有问题,vscode 会自动检测出来,然后显示在底部 “问题” 栏中。

按下 F5,开始调试,这和其他的 IDE 没什么不同。不过,每次启动 vscode 之后,第一次调试时,底栏都会自动跳到”调试控制台 “,那是输入 GDB 命令的地方,如果不需要的话就得手动切换到” 终端“栏。

vscode 的调试输入输出都会放在内置终端中,实际上就是调用了系统的 CMD 或者 PowerShell(也可以自定义终端)。如果你在那里看到了你所期望的输出,那说明你成功了。Enjoy!

参考文献

  1. Get Started with C++ and Mingw-w64 in Visual Studio Code
许可证:CC BY-SA 4.0
最后更新于 Jun 12, 2023 19:53 +0800