最近在学习Linux,安装了Deepin,记录一下自己过程中遇到问题的解决方法。
可以至官网下载.deb
格式安装VS CODE官网。
也可以通过终端安装,安装前建议更新软件包索引:
# 更新软件包索引
sudo apt update
# 安装VS CODE v1.36.1
sudo apt install code
以下插件中C/C++
插件为必选项,其他可根据需求安装。
通过终端直接安装GCC与GDB:
sudo apt install build-essential gdb
通过以下命令可以查询GCC与GDB是否安装成功,以及安装路径:
whereis g++
whereis gdb
通过终端命令直接安装Clang:
sudo apt install clang
创建工作文件夹后,用VS CODE打开该目录。或直接在VS CODE中建立工作文件夹。
打开工作文件夹后在该文件中创建源文件,如在工作文件夹adder下创建源文件adder.cpp,代码示例如下:
#include
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;
}
在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
的引用和库的路径,根据引用内容进行配置。
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"
指的是在调试前要预先执行的任务。
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"
属性的值相同。
按F5
即可启动调试,可以设置断点后进行调试。