Deepin(Linux)下使用Visual Studio Code调试C/C++程序
最近在学习Linux,安装了Deepin,记录一下自己过程中遇到问题的解决方法。
文章目录
-
- 一、安装VS CODE
- 二、安装VS CODE插件
- 三、安装GCC与GDB
- 四、安装Clang
- 五、配置VS CODE
-
- 5.1 创建工作文件夹,并用VS CODE打开
- 5.2 配置C++
- 5.3 launch.json
- 5.4 task.json
- 5.5 调试
一、安装VS CODE
可以至官网下载.deb格式安装VS CODE官网。
也可以通过终端安装,安装前建议更新软件包索引:
# 更新软件包索引
sudo apt update
# 安装VS CODE v1.36.1
sudo apt install code
二、安装VS CODE插件
以下插件中C/C++插件为必选项,其他可根据需求安装。
- C/C++(制作者是microsoft,最基础的插件)
- Code Runner(实用工具,可以选中代码块后,右键选择“run coder”直接运行代码,右上角也有快捷按钮)
- C/C++ Clang Command Adapter:提供静态检测(Lint)
- Include Autocomplete:提供头文件补全
- C/C++ Snippets:Snippets即重用代码块
- Bracket Pair Colorizer:彩虹花括号
- GBKtoUTF8:把GBK编码的文档转换成UTF8编码的
三、安装GCC与GDB
通过终端直接安装GCC与GDB:
sudo apt install build-essential gdb
通过以下命令可以查询GCC与GDB是否安装成功,以及安装路径:
whereis g++
whereis gdb
四、安装Clang
通过终端命令直接安装Clang:
sudo apt install clang
五、配置VS CODE
5.1 创建工作文件夹,并用VS CODE打开
创建工作文件夹后,用VS CODE打开该目录。或直接在VS CODE中建立工作文件夹。
打开工作文件夹后在该文件中创建源文件,如在工作文件夹adder下创建源文件adder.cpp,代码示例如下:
#include <iostream>
using namespace std;
int main()
{
int a = 0;
int b = 0;
int sum = 0;
cout << "Please input two nums:" << endl;
cin >> a >> b;
sum = a + b;
cout << "The sum of two nums is: " << sum << endl;
return 0;
}
5.2 配置C++
在VS CODE中使用F1或Ctrl Shift P快捷键打开命令面板 ,输入C/C++,选择C/C++:Edit configuration,会在工作文件夹中的.vscode文件夹下生成c_cpp_properties.json配置文件,可以将内容修改如下:
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [],
"compilerPath": "/usr/bin/g++",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "clang-x64"
}
],
"version": 4
}
其中最主要为includePath的引用和库的路径,根据引用内容进行配置。
5.3 launch.json
launch.json主要用于调试时的加载控制。按F5或通过调试->启动调试菜单打开调试面板。点击设置按钮,选择C++(GDB/LLDB)、Default Configuration,会在.vscode文件夹中生成luanch.json文件,文件内容可修改如下:
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/${fileBasenameNoExtension}.out",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"preLaunchTask":"build",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
其中"program"参数为需要调试的目标文件,应当设置为编译输出的.out文件位置。
"preLaunchTask"指的是在调试前要预先执行的任务。
5.4 task.json
task.json是构建(编译、链接等)任务。
首先,打开命令面板 ,输入Tasks:Configure Task、选择使用模板创建task.json文件、Others,会在.vscode文件夹中生成task.json文件,将内容修改如下:
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "g++",
"args":[
"-g",
"${file}",
"-std=c++17",
"-o",
"${fileBasenameNoExtension}.out"
]
}
]
}
其中"label"属性的值"build"与launch.json中"preLaunchTask"属性的值相同。
5.5 调试
按F5即可启动调试,可以设置断点后进行调试。
