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 
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中使用F1Ctrl 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即可启动调试,可以设置断点后进行调试。

你可能感兴趣的:(Linux,Visual,Studio,Code)