![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Debug随笔
文章平均质量分 55
海鸥_
这个作者很懒,什么都没留下…
展开
-
Linux动态库链接问题常见错误(/usr/bin/ld或者undefined reference to)报错
Linux系统下编译和运行程序时候,经常出现动态库链接的问题,主要有两种情况,一种是编译的时候链接问题,另一种是运行的时候链接。原创 2024-08-12 01:03:01 · 970 阅读 · 0 评论 -
编译报错boost::shared_ptr指针赋值类型错误
所以上述bug是因为shared_ptr的reset()函数传参时将boost::shared_ptr* 的变量赋值给laserScan*的变量,因为指针类型不同出现报错。cast一般用于类型转换,BOOST_ASSERT( p == 0 || p!= px )表示指针为空或在指针类型不同。所以,根据上述报错信息可以判断Bug是源自指针赋值时类型不同。’ ,另一个是‘boost::shared_ptr::element_type。然后提示信息中指出一个指针类型是‘boost::shared_ptr。原创 2024-08-07 00:07:54 · 239 阅读 · 0 评论 -
Kalibr 运行kalibr_calibrate_imu_camera报错 python boost库报错
运行kalibr中相机-IMU标定节点kalibr_calibrate_imu_camera 报错。kalibr_calibrate_imu_camera是一个python ROS节点。python ROS节点运行时需要在开头指定对应的python解释器。原创 2024-07-30 17:56:55 · 296 阅读 · 0 评论 -
error: #include nested too deeply #include “glog/vlog_is_on.h“
这种情况一般是有两种一种是A.h中引入了B.h,然后是B.h中引入A.h了,就是嵌套引用,这种情况可以看一下下述链接的解决方法。后来排查我是在A.h中不小心又#include <A.h>原创 2024-07-12 16:30:48 · 246 阅读 · 0 评论 -
Linux C++ main函数终端参数输入空格导致的错误
在lauch,json文件里,因为加了“ ”,所以当成一个字符串处理。自己debug一点问题没有,没有任何报错,代码也想不出哪里有问题。解决方法是要么将wall contour2.pg改成wall_contour2.jpg或者在终端输入的时候加入双引号。上面代码是opencv对图像进行裁切的函数,代码非常简单。这段程序需要在命令终端传人参数。原创 2024-01-25 22:57:08 · 438 阅读 · 1 评论 -
二维数组索引越界
自己定义了一个二维数组,初始化值为0,大小是图片mask的大小,里面的值代表点云的索引,即point_index。程序里面索引到mask.rows和mask.cols时就越界了,导致值溢出。通过Debug调试软件定位,发现是point_index超出点云最大的索引了。上述代码运行的时候报一下错误。但是取值的时候忘了,其。原创 2024-01-19 22:02:24 · 402 阅读 · 1 评论 -
error: static assertion failed: YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES
根据报错信息发现是矩阵相乘维度不统一的错误,一个矩阵是Derived = Eigen::Matrix<double, 4, 4>,另外一个矩阵是Eigen::Matrix<double, 3, 1>。Eigen可以表示空间转换的还有两种形式,一个是Eigen::Affine3d, 另一个是Eigen::Isometry3d。它们之间的区别在于它们所表示的变换类型和所包含的自由度。Eigen::Isometry3D 和Eigen::Affine3D是可以和3维向量直接相乘的。T是齐次转换矩阵,维度是。原创 2023-12-28 18:17:28 · 1242 阅读 · 1 评论 -
error: declaration of ‘pcl::CorrespondencesPtr correspondences’ shadows a parameter
开始以为是pcl::CorrespondencesPtr的变量声明有问题,后面发现不是这个问题。当一个局部变量的名称与外部作用域的参数名称相同时。这种情况可能会导致混淆和错误的使用,因此编译器会给出警告或错误。解决 “shadows a parameter” 错误的方法是避免在局部作用域内使用与外部作用域同名的变量。可以通过修改变量名或者将变量的作用域限定在不同的范围内来解决这个问题。原因是自定义的变量名与函数的输入参数同名了,所以会出现shadows a parameter的问题。原创 2023-12-28 17:29:32 · 473 阅读 · 1 评论 -
pcl::PointCloud<pcl::PointXYZ>和pcl::PointCloud<pcl::PointXYZ>::Ptr传参的时候的转换
cloud_max_cluster是Ptr的格式,所以传入*cloud_max_cluster,对指针进行取值,结果还是出现报错。在函数声明的地方忘记改了,函数声明的地方,参数是智能指针。将函数声明的地方和函数定义的地方改成一样的即可。原创 2023-12-20 11:52:03 · 803 阅读 · 0 评论 -
opencv像素值索引越界导致异常的问题
例如,在 C++ 中,uchar value = img.at(y,x) 中,y 代表纵坐标,x 代表横坐标,ptr(y)[x]。但是在运行过程中发现有些点的像素值大于39,例如153,255等。我是用指针的方法查询像素值的。后来打印出来像素值异常的像素点的横纵坐标,发现v的坐标比cols大,但是程序并没有越界报错。当索引像素值时,只有当y为负数时,才会越界报错, y比行数大的时候,不会报错只会出现错误像素值。这里不得不提一下opencv像素索引的规则了,无论是用指针的方式,还是at的方式,都是y,x。原创 2023-07-10 22:32:23 · 266 阅读 · 1 评论 -
自定义语义点云可视化渲然,多版本VTK库冲突导致段错误(核心已转储),已解决。
总结一下,这个是一个由于多版本第三方库导致的问题,当我们运行的程序多的时候,电脑上有时候不可避免要装多个版本的第三方库,所以在编译的时候,一定要指定好第三方库的版本,如下面所示。Linux文件管理方式和Windows是不一样的,windows是把同一个库装到一个包中,Linux是按照文件类型进行分类的,比如把不同的库的头文件都放到 /usr/include中,把库文件放到 /usr/lib中,比较杂。找了好久才发现,他们不是同一个版本的库,头文件是7.1,源文件是9.2.2,我怀疑是库版本错误导致的。原创 2023-07-05 20:14:57 · 268 阅读 · 1 评论 -
ubuntu20.04 pcl1.08 cmake vtk报错The `PATH` argument is required.
近日在Ubuntu20.04上编译PCL 1.08,在cmake时遇到一个问题CMake Error at /usr/local/vtk922/lib/cmake/vtk-9.2/vtkDetectLibraryType.cmake:23 (message): The `PATH` argument is required.Call Stack (most recent call first): /usr/local/vtk922/lib/cmake/vtk-9.2/FindFreetype.c原创 2023-07-04 17:26:57 · 663 阅读 · 2 评论 -
PCL自定义点云可视化undefined reference to `pcl::visualization::PointCloudGeometryHandlerXYZ<PointXYZIL>问题
这类错误一般都是链接库时出现问题,但是我在CMakeLists.txt中已经链接了${PCL_LIBRARIES},后来查资料,发现undefined reference to 除了因为是没有找到库外,也有可能是函数定义的头文件没有引入。之前自己尝试写过很多代码调试的笔记,但是都是在飞书上写的。但是飞书上记录有个问题,就是自己没有动力去整理笔记,每次都相当于草稿一样简单记录一下。一个是给大家分享解决方法,另一个也是想当成一个笔记记录自己debug思路,同时也为自己积累经验。结果编译时出现如下问题。原创 2023-07-02 22:19:10 · 477 阅读 · 1 评论