时至今日,许多大学所使用的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:推荐安装新版PowerShell和Windows 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!