在Windows上用vscode进行C++开发
本文最后更新于 756 天前,其中的信息可能已经有所发展或是发生改变。

时至今日,许多大学所使用的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包,然后手动按照下面所提到的安装路径解压。

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

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

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

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

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

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

配置环境变量

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

但每次打命令都需要输命令,那也太麻烦了。而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是类似于这样的:

对于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中粘贴这段代码:

{
  "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中粘贴这段代码:

{
  "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
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇