若文中图片无法加载,请访问图片备份地址
为了避免下次配置环境时踩坑,现将正确的配置过程记录下来
1. 版本环境
Deepin 20.1 社区版
VScode October 2020 (version 1.51)
版本只要是最近的,影响不大
2. 配置过程
2.1 安装vscode
此处各显神通即可,Deepin可直接在应用商店中安装,其他Linux版本可去官网下载.deb文件后安装。
2.2 安装依赖
在终端依次执行下列命令:
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install gdb
若已安装,升级至最新版即可
sudo apt-get upgrade
2.3 vscode内的配置
2.3.1 安装扩展
安装C/C++扩展 id:ms-vscode.cpptools
有需要的话可安装中文语言包扩展 id:ms-ceintl.vscode-language-pack-zh-hans
2.3.2 json文件配置
先展示文件目录结构
首先创建一个工作文件夹,并用vscode打开(此处为cpp_file文件夹)
-
创建一个新的文件做测试用例(此处为test.cxx)
#include <iostream> using namespace std; int main(){ int a; cin>>a; cout<<a<<endl; return 0; }
创建一个文件夹用来存放编译输出的可执行文件,类似于windows下的.exe文件(此处为out文件夹)
此处为个人喜好,比较喜欢将输出文件放置在一起,如不需要,可略过此步骤
-
按
F5
进行调试,选择C++(GDB/LLDB)
,继续选择g++ 生成和调试活动文件
此时会生成一个.vscode文件夹,里面包含launch.json和tasks.json
生成.vscode文件夹此时处于调试状态,可点击顶部
橙色方块
停止调试。 -
编辑launch.json文件
自动生成的launch.json文件中的参数若有中文,建议改为英文,tasks.json同理
请注意下方json文件中所写的一些注释信息{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", "type": "cppdbg", "request": "launch", "program": "${workspaceRoot}/out/${fileBasenameNoExtension}", // 此处若可执行文件不想放在一个文件夹中,则把 /out 删去即可 "args": [], "stopAtEntry": false, "cwd": "${workspaceRoot}", // 此处${workspaceRoot}与${workspaceFolder}应该类似,但网上资料大部分用的前者 "environment": [], "externalConsole": false, "MIMode": "gdb", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "C/C++: g++ build active file", // 此处要与tasks.json中的label相同 "miDebuggerPath": "/usr/bin/gdb" } ] }
-
编辑tasks.json文件
{ "tasks": [ { "type":"shell", // 此处type的属性问题下面详说 "label": "C/C++: g++ build active file", "command": "/usr/bin/g++", "presentation": { "echo": true, "reveal": "always", "focus": false, "panel": "shared", "showReuseMessage": true, "clear": false }, "args": [ "-g", "${file}", "-o", "${workspaceRoot}/out/${fileBasenameNoExtension}" ], // 此处与launch.json中类似,若不需要则删去 /out "options": { "cwd": "${workspaceFolder}" }, "problemMatcher": [ "$gcc" ], "group": { "kind": "build", "isDefault": true }, "detail": "Task generated by Debugger." } ], "version": "2.0.0" }
tasks.json中的
type
包含两种属性,shell
和process
,二选一。经尝试,两种都可成功运行。但stackoverflow上关于此问题的回答中,有人说在运行多个cpp项目时,将
process
改成shell
后才成功运行因此综合考虑,此处用了shell属性
3. 调试运行
不出意外的话,此时就可以编译运行c++了!