ubuntu系统下c++ cmakelist vscode debug(带传参的debug)的详细示例

c++和cmake的debug,网上很多都需要配置launch.json,cpp.json啥的,记不住也太复杂了,我这里使用cmake插件带有的设置,各位可以看一看啊✌(不知不觉,竟然了解了vscode中配置文件的生效逻辑🤣)

  1. 克隆一个c++仓库
git clone git@github.com:jinxianwei/ImageBasedModellingEduV1.0.git
  1. 在vscode中打开该文件夹

在这里插入图片描述

  1. 添加一些扩展(一些扩展不知是否有用,需要精简)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  2. 选择编译器(正常都有吧,如果没有的话,可能ubutu是新安装的,需要apt install安装c++啥的,需要百度)
    在vscode的底部有如下小的工具(前提安装了上述所有的插件)
    在这里插入图片描述
    选择 “未选择任何工具包”,会跳出如下选项
    在这里插入图片描述
    选择GCC9,即最后一个选项(其他的gcc可能也ok,反正就是个编译的,别差太多,估计都行)
    选择后会自动进行编译,或者手动点击最下面的"生成"
    在这里插入图片描述
    可能出现cmake报错,有未安装的包,需要apt install一下(可以百度)
    在这里插入图片描述
    解决所有的报错,直至点击”生成“时出现如下效果
    在这里插入图片描述
    恭喜,当前项目已经编译成功

  3. 尝试使用cmake插件的按钮,运行生成的某一可执行文件
    在这里插入图片描述
    选择task2_test_camera_model这个可执行文件(该可执行文件不需要传递参数),再点击左侧的三角按钮,出现如下效果

在这里插入图片描述

分割线===================================================================================
6. 重点,使用任何软件编程,最重要的就是debug的使用,如果某可执行文件不需要传递参数,则直接点击最下面的bug按钮,并再相应的cpp文件中添加断点,就可以停到断点处;如果可执行文件需要传递参数呢,如下

点击最下面启动目标,出现如下选项
在这里插入图片描述
这里面的所有可启动项均为此项目编译完成后的可执行文件,选择task4的这个
在这里插入图片描述
点击左侧的运行,出现如下错误
在这里插入图片描述
原因:可执行文件需要两个传入的路径一同运行
debug时,cmake插件中的参数设置,这样设置:
选择左侧cmake图标,
在这里插入图片描述
点击上方的齿轮按钮
在这里插入图片描述
选择这个视图下的:在settings.json中编辑
在这里插入图片描述

在弹出的位置处,添加args参数
在这里插入图片描述
选择args,并设置两个有效的图像文件夹(选择项目下的sequence和temp的绝对路径)
在这里插入图片描述
点击最下面的运行和bug按钮
在这里插入图片描述
在这里插入图片描述

注意:不要点击vscode左上角的那个debug,他们走的是不同的配置,是不同的配置,是不同的配置

进一步理解

上述更改的settings.json位于本机的vscode配置文件中,这是一个关于软件本身的配置文件,修改了这里的cmake debug config意味着,当有其他c++项目需要debug时,这个参数需要一同更改,这不方便保存每个项目的debug记录
在这里插入图片描述
熟悉python的或是其他语言的vscode,可能了解到项目文件夹本身有一个.vscode的文件夹,其中也可以设置settings.json文件,我们可以将原本配置在软件config中的”args“关键字配置在这里,如下图所示(可见,vscode的参数配置逻辑可能为:将软件的settging.json和项目文件夹下的.vscode中的settings.json合并,如果出现重复的关键字,会由项目本身文件夹下的关键字的参数进行更改)
在这里插入图片描述

在这里插入图片描述

别忘了还原那个settings.json中的内容欧

祝愿跟着复现的你,不会遇到各种各样的奇怪问题✌

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/668908.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【PPT密码】ppt设置的编辑密码,如何取消?

不知道大家是否了解PPT文件的编辑密码,首先ppt中没有限制编辑功能,设置为只读模式后仍然可以编辑文件,但其实有一种类似于限制编辑的加密方式。在我们打开PPT文件的时候会有密码输入框。 如果我们没有输入密码,以只读方式进入&…

Linux项目自动化构建工具之make/Makefile演示gcc编译

文章目录 一、背景二、如何使用?三、原理四、关于make的问题五、再次理解/编写makefile依赖关系依赖方法 六、原理讲解项目清理makefile是支持变量的取消执行make后显示命令依赖方法可以多行 一、背景 会不会写makefile,从一个侧面说明了一个人是否具备…

ResizeObserver的使用

这篇说下ResizeObserver API。ResizeObserver接口监视 Element 内容盒或边框盒或者 SVGElement 边界尺寸的变化。 ResizeObserver避免了通过回调函数调整大小时,通常创建的无限回调循环和循环依赖项。它只能通过在后续的帧中处理 DOM 中更深层次的元素来做到这一点…

Yarn常见问题处理

任务出现container OOM异常导致作业失败 原因 Container内存不足或者作业数据倾斜 解决方案 检查Container相关参数,判断是否设置过小(低于4GB)。如果Container小于4GB,优先考虑调大当前作业container大小,如果是Tez任务,还需要同步调整以下参数 # tez container size…

双非本科准备秋招(17.1)—— 力扣二叉树

1、257. 二叉树的所有路径 要求返回根节点到叶子节点的所有路径,这里用前序遍历就好。 每次递归前,都让字符串s加上当前节点的值和“->”,然后判断是否为叶子节点,如果是的话,说明这条路径是一个答案,因…

为啥餐饮界营销频频出圈?媒介盒子分享

回看2023年的营销热点,茶饮界和餐饮行业依然占据了最多的出圈镜头,从麦当劳的“麦门”到海底捞的科目三,许多餐饮和食品品牌都依靠营销策划和巧思成功占据了用户心智。毫无疑问,内容已经成为公认的和用户沟通的最佳手段。今天媒介…

Django的配置文件setting.py

BASE_DIR 项目路径:默认是已经打开的主项目路径 ​​​​​​​BASE_DIR os.path.dirname(os.path.dirname(os.path.abspath(__file__))) SECRET_KEY 密钥 SECRET_KEY (dh&_fm2hfn9y)35!_6#$a7q%%^onoy#-a8x18r4(6*8f(aniDEBUG 帮助调试,默认…

【EI会议征稿通知】第三届智能控制与应用技术国际学术会议(AICAT 2024)

第三届智能控制与应用技术国际学术会议(AICAT 2024) 2024 3rd International Symposium on Artificial Intelligence Control and Application Technology 2024年第三届智能控制与应用技术国际学术会议(AICAT 2024)定于2024年5月…

Postgresql数据库存储过程中的事务处理

在PostgreSQL中,事务处理是一种保证数据库操作要么完全成功,要么完全失败的机制,确保数据库的完整性和一致性。事务通过一系列的数据库操作组成,这些操作作为一个整体执行,它们要么全部成功,要么全部失败。…

Android14之Selinux报错:unknown type qemu_device at token (一百八十三)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

C语言:公式求和

题目描述 计算公式:1-1/21/3-1/4……,求前面n(n≤10000)项和,结果保留小数点后面6位。 例如当n4时,和值为0.583333 当n10时,和值为0.645635 输入格式 一个正整数n 输出格式 求出的和值,保留小数点后面6位 …

如何批量删除OneDrive for Business中的文件历史版本

OneDrive for Business是微软提供的云存储服务,它允许用户存储、同步和共享文件。为了保护数据不受意外更改的影响,OneDrive提供了版本控制功能,用户可以查看和恢复文件的旧版本。但是,随着文件数量的增加,这些历史版本…

在bash或脚本中,如何并行执行命令或任务(命令行、parallel、make)

最近要批量解压归档文件和压缩包,所以就想能不能并行执行这些工作。因为tar自身不支持并行解压,但是像make却可以支持生成一些文件,所以我才有了这种想法。 方法有两种,第一种不用安装任何软件或工具,直接bash或其他 …

QXlsx Qt操作excel(2)

QXlsx 是一个用于处理Excel文件的开源C库。它允许你在你的C应用程序中读取和写入Microsoft Excel文件(.xlsx格式)。该库支持多种操作,包括创建新的工作簿、读取和写入单元格数据、格式化单元格、以及其他与Excel文件相关的功能。 关于QXlsx的…

svg格式图片转png,jpg等(矢量图转像素点阵图)

imagemagick 效果不太理想,有些svg图片,convert会生成灰色空白图片,另外尺寸也不方便控制。虽然可以使用参数 -resize 100x 但是这个是在转换后的像素点图上执行的,因此会让图像变得不清晰。 # svg图片地址为网络地址 curl -s h…

动力电池智能工厂数字孪生可视化,助力新能源汽车产业数字化转型

动力电池智能工厂数字孪生可视化,助力新能源汽车产业数字化转型。随着新能源汽车产业的快速发展,动力电池作为新能源汽车的核心组成部分,其生产制造的数字化转型也成为了行业关注的焦点。动力电池智能工厂数字孪生可视化平台作为一种新型的技…

GitLag所有操作-汇总

1、MAC Git环境设置 跳转 Git通过Token拉代码: 跳转 Git基础操作:拉、put、删 跳转 Git回滚操作: 跳转 Git回滚操作-复杂 跳转 对于Commit但是还没有push的代码,如果回滚: 跳转

Python中的HTTP代理服务器和客户端的区别与联系

在Python编程中,当我们涉及到网络通信,尤其是HTTP请求时,经常会听到“HTTP代理服务器”和“客户端”这两个词。它们在网络世界中扮演着不同的角色,但又有着紧密的联系。 区别 首先,我们来谈谈它们的区别。 HTTP代理…

阿里云服务器多少钱一年?4核16G10M带宽26元/月

2024年2月阿里云服务器租用价格表更新,云服务器ECS经济型e实例2核2G、3M固定带宽99元一年、ECS u1实例2核4G、5M固定带宽、80G ESSD Entry盘优惠价格199元一年,轻量应用服务器2核2G3M带宽轻量服务器一年61元、2核4G4M带宽轻量服务器一年165元12个月、2核…

vue基本语法总结大全

vue基本语法 文章目录 vue基本语法基本用法内容渲染指令属性绑定指令使用js表达式事件绑定指令条件渲染指令v-else和v-else-if指令列表渲染指令v-for中的key 组件化开发安装详细讲解 第三方组件1. 组件间的传值2. element-ui介绍3. 组件的使用4. 图标的使用 Axios网络请求1. Ax…