当前位置: 首页 > article >正文

在Ubuntu上使用Visual Studio Code调试C++代码

在Ubuntu上使用Visual Studio Code调试C++代码,并且使用CMake进行构建,可以按照以下步骤进行配置:

1. 安装必要的工具

确保你已经安装了以下工具:

  • CMake: 用于构建项目
  • GCC/G++: 用于编译C++代码
  • gdb: 用于调试

可以通过以下命令安装这些工具:

sudo apt update
sudo apt install build-essential cmake gdb

2. 安装Visual Studio Code及其插件

如果还没有安装VS Code,可以通过以下命令安装:

sudo snap install --classic code

安装完VS Code后,打开它,并安装以下插件:

  • C++ (ms-vscode.cpptools): 主要用于C++的编程支持,包括调试、IntelliSense等。
  • CMake Tools (ms-vscode.cmake-tools): 支持CMake项目的配置、生成和调试。

3. 创建CMake项目

创建一个基本的CMake项目结构:

mkdir MyCMakeProject
cd MyCMakeProject

在项目目录下创建以下文件和文件夹:

CMakeLists.txt

这是你的CMake配置文件,用于指定构建过程。

cmake

cmake_minimum_required(VERSION 3.10)

# 项目名称
project(MyCMakeProject)

# 设置C++标准
set(CMAKE_CXX_STANDARD 14)

# 指定可执行文件生成路径
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)

# 添加源文件
add_executable(MyExecutable main.cpp)
main.cpp

你的主C++代码文件:

#include <iostream>

int main() {
    std::cout << "Hello, CMake!" << std::endl;
    return 0;
}

4. 配置VS Code调试

CMakeSettings.json

在项目根目录下创建一个文件CMakeSettings.json,用于配置CMake生成文件的路径和构建类型。

json

{
    "configurations": [
        {
            "name": "Linux-Debug",
            "generator": "Unix Makefiles",
            "configurationType": "Debug",
            "buildRoot": "${projectDir}/build/${name}",
            "installRoot": "${projectDir}/install/${name}",
            "cmakeCommandArgs": "",
            "buildCommandArgs": "-j8",
            "ctestCommandArgs": ""
        }
    ]
}
launch.json

用于配置VS Code调试器。按下Ctrl + Shift + P,选择CMake: Add Debug Configuration,VS Code会自动生成一个launch.json文件,或你可以手动创建.vscode/launch.json

json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "C++ Debug",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/build/Linux-Debug/bin/MyExecutable",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "build",
            "miDebuggerPath": "/usr/bin/gdb",
            "setupCommands": [
                {
                    "text": "set substitute-path /mnt/c/ /",
                    "description": "For Windows debugging",
                    "ignoreFailures": true
                }
            ],
            "logging": {
                "moduleLoad": false,
                "programOutput": true,
                "trace": false,
                "engineLogging": false
            }
        }
    ]
}

5. 配置VS Code任务

tasks.json

tasks.json文件用于配置构建任务。可以通过在VS Code命令面板中输入Tasks: Configure Default Build Task来生成,或者手动创建.vscode/tasks.json文件:

json

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "type": "shell",
            "command": "cmake",
            "args": [
                "--build",
                "${workspaceFolder}/build/Linux-Debug"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": ["$gcc"],
            "detail": "Generated by VS Code"
        }
    ]
}

6. 编译和调试

  • Ctrl + Shift + B编译项目。
  • 在VS Code中按F5启动调试器。

这将编译你的项目并启动调试器,你可以在main.cpp中设置断点并开始调试。

通过上述配置,你可以在Ubuntu上使用Visual Studio Code进行C++项目的开发、构建和调试。


http://www.kler.cn/a/282669.html

相关文章:

  • 博物馆实景复刻:开启沉浸式文化体验的新篇章
  • SOC Boot学习(三)——boot流程
  • 林曦词典|养生
  • Linux——Linux环境基础开发工具使用
  • openwebui二改界面环境搭建
  • layui.all.js:2 Uncaught Error: Syntax error, unrecognized expression
  • 掌握Nginx负载均衡中的请求缓存处理:策略与实现
  • Geoserver的 rest、wfs、wms、wps接口请求指南
  • Apache Kafka 简介、使用场景及特点
  • CEASC:基于全局上下文增强的自适应稀疏卷积网络在无人机图像上的快速目标检测
  • Numpy 数组及矩阵创建详解
  • 在 PyTorch 中,`permute` 方法是一个强大的工具,用于重排张量的维度。
  • 一文认识大数据的CAP原则和BASE原则
  • sheng的学习笔记-AI-半监督SVM
  • Axure RP下载+详细安装步骤资源百度云盘分享
  • 求助(必关)
  • MS1861 宏晶微 视频显示与控制器芯片 提供开发资料
  • 【JupyterLab】pip安装过程问题记录(未完)
  • PyTorch深度学习实战(26)—— PyTorch与Multi-GPU
  • JSP简述
  • 数据结构-单链表-详解-1
  • 外包干了两年,快要废了。。。
  • react学习之useState和useEffect
  • java一键生成数据库说明文档html格式
  • 多项目同时进行:如何做好进度管理
  • 阿里龙晰系统上将yum安装的myql_8.0.36升级到mysql_8.4.0的过程