Debian | Vscode 安装与配置 C 环境

Debian | Vscode 安装与配置 C 环境

安装 vscode

shell 复制代码
sudo apt update
sudo apt install software-properties-common apt-transport-https curl

curl -sSL https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main"

sudo apt update
sudo apt install code

配置环境

shell 复制代码
sudo apt install build-essential gdb

安装插件

下载插件 C/C++

创建一个 cpp 文件,写入 c++ 代码,并进行 Debug C/C++ File

cpp 复制代码
#include<bits/stdc++.h>

using namespace std;

int main()
{
    cout << "hello" << endl;
    return 0;
}

选择 g++

此时在 .vscode 文件夹下会多出 tasks.json

json 复制代码
{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++ build active file",
            "command": "/usr/bin/g++",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "Task generated by Debugger."
        }
    ],
    "version": "2.0.0"
}

同时,终端输出 hello

按 Ctrl + Shift + P 在上方输入 configuration

找到 C/C++: Edit Configurations(JSON) 并点击

此时在 .vscode 目录下面会多出 c_cpp_properties.json

json 复制代码
{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "c17",
            "cppStandard": "gnu++17",
            "intelliSenseMode": "linux-gcc-x64"
        }
    ],
    "version": 4
}

点击左侧 Run and Debug 图标:

点击 create a launch.json file

选择 C++ (GDB/LLDB)

json 复制代码
{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
 
        {
            "name": "g++ - Build and debug active file",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "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",
            "miDebuggerPath": "/usr/bin/gdb",
        }
    ]
}

解决终端出现 [1] + Done "/usr/bin/gdb" --interpreter=mi --tty=${DbgTerm} 0<"/tmp/Microsoft-MIEngine-In-wyyxzchw.1pu" 1>"/tmp/Microsoft-MIEngine-Out-qddpshqk.bcg"

在 launch.json 的 configuration 中添加:

json 复制代码
"miDebuggerArgs": "-q -ex quit; wait() { fg >/dev/null; }; /usr/bin/gdb -q --interpreter=mi",

重新编译运行

最终,launch.json 内容为

json 复制代码
{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
 
        {
            "name": "g++ - Build and debug active file",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "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",
            "miDebuggerPath": "/usr/bin/gdb",
            "miDebuggerArgs": "-q -ex quit; wait() { fg >/dev/null; }; /usr/bin/gdb -q --interpreter=mi",
        }
    ]
}
相关推荐
黑夜路人1 分钟前
Cursor中rules配置参考-202504版(含前后端Golang/TypeScript/Kotlin等)
ide·vscode·ai·golang
zore_c13 分钟前
【C语言】文件操作详解1(文件的打开与关闭)
c语言·开发语言·数据结构·c++·经验分享·笔记·算法
还下着雨ZG16 分钟前
VC6.0:Window平台专属的C/C++集成开发环境(IDE)
c语言·c++·ide
缘三水17 分钟前
【C语言】9.操作符详解(上)
c语言·开发语言·新人首发
刃神太酷啦20 分钟前
C++的IO流和C++的类型转换----《Hello C++ Wrold!》(29)--(C/C++)
java·c语言·开发语言·c++·qt·算法·leetcode
不想写笔记21 分钟前
C语言 函数
c语言·笔记
大海里的番茄22 分钟前
让操作系统的远程管理更简单用openEuler+cpolar
linux·c语言·c++
小龙报29 分钟前
VS2022调试技巧 + 实战案例
android·服务器·c语言·数据库·c++·windows·visual studio
枫叶丹431 分钟前
【Qt开发】Qt窗口(四) -> QDockWidget浮动窗口
c语言·开发语言·c++·qt·开源
秋深枫叶红38 分钟前
嵌入式第二十五篇——数据结构单向链表
c语言·数据结构·学习·算法