一步一步学CMake 之 VSCode+CMakeLists 调试 C++ 工程

2023-05-16

目录

1. 插件推荐

2. 文件准备

3. 开始调试


一步一步学 CMake 系列文章

1. 插件推荐

CMake

CMake tools

2. 文件准备

新建文件夹:TEST

新建文件:CMakeLists.txt

内容如下:

cmake_minimum_required(VERSION 2.6)

project(vscode_cmake)
set(CMAKE_BUILD_TYPE DEBUG)
set(SRC_LIST main.cpp)
add_executable(result ${SRC_LIST})

新建main.cpp文件

#include<iostream>

using namespace std;

int main(){

    int a = 2+3;
    int b = a+3;

    for(int i = 0; i<10; i++){
        cout<<"hello vs code & cmake..."<<endl;
    }
    
    return 0;
}

3. 开始调试

点击打开文件夹,找到TEST文件夹,打开

更改 tasks.json

{
    "options": {
        "cwd": "${workspaceFolder}/build"
    },
    "tasks": [
        {
            "label": "cmake",
            "command": "cmake",
            "args": [
                "-DCMAKE_BUILD_TYPE=Debug",
                ".."
            ]
        },
        {
            "label": "make",
            "command": "make"
        },
        {
            "label": "CMake Build",
            "dependsOn": [
                "cmake",
                "make"
            ]
        }
    ],
    "version": "2.0.0"
}

更改launch.json

点击图中最左侧第四个小蜘蛛形状的图标(调试),点击左上方的小齿轮,添加配置(C++GDB/LLDB)

这个时候资源管理器下就会生成.vscode文件夹,下面有个launch.json文件,内容如下

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "enter program name, for example ${workspaceFolder}/a.out",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "CMake Build"
        }
    ]
}

把下面一句:

"program": "enter program name, for example ${workspaceFolder}/a.out",

改成:(根据CMakeLists.txt文件内容,将会在build文件夹下生成result可执行文件)

"program": "${workspaceFolder}/build/result"

然后点击界面最下方的build, 选择GCC5.4... ,开始build...然后就在build问价夹下生成了result可执行文件,有了可执行文件才能进行debug操作。

打上断点,按F5程序就会在断点处停下来,在调试窗口就可以看到代码中的变量值,字符串会在弹出来的终端窗口中打印出来。

​​​​​​​打上断点,按F5程序就会在断点处停下来,在调试窗口就可以看到代码中的变量值,字符串会在弹出来的终端窗口中打印出来。

打上断点,按F5程序就会在断点处停下来,在调试窗口就可以看到代码中的变量值,字符串会在弹出来的终端窗口中打印出来。

打上断点,按F5程序就会在断点处停下来,在调试窗口就可以看到代码中的变量值,字符串会在弹出来的终端窗口中打印出来。

打上断点,按F5程序就会在断点处停下来,在调试窗口就可以看到代码中的变量值,字符串会在弹出来的终端窗口中打印出来。

打上断点,按F5程序就会在断点处停下来,在调试窗口就可以看到代码中的变量值,字符串会在弹出来的终端窗口中打印出来。

打上断点,按F5程序就会在断点处停下来,在调试窗口就可以看到代码中的变量值,字符串会在弹出来的终端窗口中打印出来。

打上断点,按F5程序就会在断点处停下来,在调试窗口就可以看到代码中的变量值,字符串会在弹出来的终端窗口中打印出来。

打上断点,按F5程序就会在断点处停下来,在调试窗口就可以看到代码中的变量值,字符串会在弹出来的终端窗口中打印出来。

打上断点,按F5程序就会在断点处停下来,在调试窗口就可以看到代码中的变量值,字符串会在弹出来的终端窗口中打印出来。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一步一步学CMake 之 VSCode+CMakeLists 调试 C++ 工程 的相关文章

随机推荐

  • 初学者如何学习人工智能收藏

    在CSDN上看到一篇关于初学人工智能的帖子 xff0c 分享给大家 xff0c 希望有用 原文链接 xff1a http bbs jointforce com topic 22613 全文如下 xff1a 一 机器学习 有关机器学习领域的最
  • freeRTOS中队列发送数组(数组成员是结构体类型)

    typedef struct icm42607 sensor data packet t int8 t head int8 t temp degc int16 t reserve0 int16 t accel g 3 int16 t res
  • tracealyzer的使用方法

    61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61
  • arm汇编指令探究之 ldmia

    ldmia r0 r4 r11 r14 的意思是 LDMIA 中的 I 是 increase 的缩写 xff0c A 是 after 的缩写 xff0c LD加载 load 的意思 R0后面的感叹号 xff01 表示会自动调节 R0里面的指
  • arm汇编指令探究之STMFD和LDMIA指令的使用

  • 汇编输入输出(单个字符以及字符串)

    简单的汇编代码演示 简单的汇编代码演示 1输入输出 1 INT 16HROM BIOS中断1 INT 21HDOS中断 2字符串的输入 1 输入输出 输入输出主要有两个中断调用 xff0c 分别为INT 16H 和INT 21H 1 1 I
  • 关于海康摄像头OSD字幕叠加(.NET/C#/Formwork)

    刚接触摄像头代码的编写 xff0c 这里记录一下吧 xff01 记录一下我挨打的过程 xff01 xff01 在摄像头里面添加字符串 xff0c 困扰了很久 xff0c 资料也看了很多 xff0c 海康官网的文档看了也不是很懂 xff0c
  • 进程管理——进程实体

    一 进程的重要性 操作系统的基本功能是为了管理底层硬件资源 xff0c 在没有配置操作系统之前 xff0c 资源只属于当前运行的程序 这时的计算机只能运行一个程序 xff0c 并且是一个程序接着一个程序的运行 当计算机运行某一个程序时 xf
  • Effective C++读书笔记--Item 1:从四个语言层次理解C++

    可以将C 43 43 理解成由四个子语言组成 xff1a C Object Oriented C 43 43 Template C 43 43 STL C xff1a 代码块 语句 数组 指针 内置数据类型 预处理器 Object Orie
  • 设计师建筑师太难了,既要学BIM、无人机,还要学GIS!

    我 xff0c 一个平平无奇的城市规划专业 xff08 建筑专业 路桥专业 xff09 大学生 xff0c 还有一年要毕业 xff0c 很担心工作以后受到社会的毒打 xff0c 遂问导师和学长 xff0c 我要自学点什么技能和软件 xff1
  • 无人机航测是选择固定翼还是多旋翼?

    无人机测绘通过无人机低空摄影获取高清晰影像数据生成三维点云与模型 xff0c 实现地理信息的快速获取 效率高 xff0c 成本低 xff0c 数据准确 xff0c 操作灵活 xff0c 可以满足测绘行业的不同需求 大大地节省了测绘人员野外测
  • HAL库学习——串口中断

    一 介绍 串口的传输方式包括 xff1a 轮询 中断DMA xff0c 在此要介绍的是关于HAL库底层串口接收中断流程的讲解 xff0c 包括串口错误的处理 xff0c 中断回调函数以及错误中断回调函数的执行 二 配置流程 首先使用STM3
  • 嵌入式操作系统FreeRTOS的原理与实现

    URL http www eefocus com sensorwireless blog 08 03 144457 c9bd6 html 摘要 FreeRTOS是一个源码公开的免费的嵌入式实时操作系统 xff0c 通过研究其内核可以更好地理
  • 吃惊!难道Java也受美国出口管制?

    今天 xff0c 去翻看了一下Oracle Jdk的许可协议 xff0c 竟然是受美国出口管制 原文是这么说的 xff1a EXPORT REGULATIONS You agree that U S export control laws
  • 自己写出strcat函数

    通过指针和字符数组的结合写出strcat xff08 字符串拼接 源码如下 效果图 include lt stdio h gt include lt string h gt int main void char a 20 char b 20
  • 根据ttf文件 获取汉字点阵数据

    文件列表 untitled3 pro QT 61 gui CONFIG 43 61 c 43 43 11 console CONFIG 61 app bundle The following define makes your compil
  • nmap基本使用方法

    nmap基本使用方法 1 nmap简单扫描 nmap默认发送一个ARP的PING数据包 xff0c 来探测目标主机1 10000范围内所开放的所有端口 命令语法 xff1a nmap lt target ip address gt 其中 x
  • ROS学习之自定义msg类型

    1 创建msg文件 cd catkin ws src my package mkdir msg echo 34 string first name string last name uint8 age uint32 score 34 gt
  • 无人驾驶传感器之GPS和IMU

    GPS精度 xff1a GPS是由美国国防部牵头研制和维护的 xff0c 不可避免的牵扯到军事方面的因素 最早期因为害怕别的国家利用高精度的定位对美国进行打击 xff0c 他们甚至故意加大明勇定位的误差 xff0c 导致当时民用精度只能达到
  • 一步一步学CMake 之 VSCode+CMakeLists 调试 C++ 工程

    目录 1 插件推荐 2 文件准备 3 开始调试 一步一步学 CMake 系列文章 1 插件推荐 CMake CMake tools 2 文件准备 新建文件夹 xff1a TEST 新建文件 xff1a CMakeLists txt 内容如下