pcl自定义点云类型 undefined reference to ‘pcl::PCLBase<>::...’ undefined reference to ‘pcl::search:<>错误

谢谢这位博主的灵感!https://blog.csdn.net/qq_43427457/article/details/125052803
自定义的点云数据类型调用pcl的icp和滤波等库的时候遇到undefined reference的问题,开始以为是CMakeList写的有问题,比如缺set directory等等,但是尝试了很久都没有用。本来想改一下数据类型但是感觉pcl不至于这么蠢。。。
偶然又看到了这篇,尝试了一下发现是work的。
![在这里插入图片描述](https://img-blog.csdnimg.cn/03be346fce24405fb7f30c1eb9913d97.pn在pcl库里搜索报错相关的头文件,举个例子:
在这里插入图片描述然后include对应的头文件
在这里插入图片描述
成功解决!

再记录自定义点云类型调用pcl库时候的另一个坑:
总出现Eigen相关的报错

error: static assertion failed: YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY

EIGEN_STATIC_ASSERT((internal::is_same<Scalar,typename OtherDerived::Scalar>::value),

error: no matching function for call to ‘Eigen::internal::transform_construct_from_matrix<Eigen::Matrix<float, 4, 4>, 2, 0, 3, 4, 4, 4>::run(Eigen::Transform<double, 3, 2>*, const Eigen::Matrix<float, 4, 4>&)’

internal::transform_construct_from_matrix<OtherDerived,Mode,Options,Dim,HDim>::run(this, other.derived());

note: candidate: static void Eigen::internal::transform_construct_from_matrix<Other, Mode, Options, Dim, HDim, HDim, HDim>::run(Eigen::Transform<typename Other::Scalar, Dim, Mode, Options>*, const Other&) [with Other = Eigen::Matrix<float, 4, 4>; int Mode = 2; int Options = 0; int Dim = 3; int HDim = 4; typename Other::Scalar = float]

static inline void run(Transform<typename Other::Scalar,Dim,Mode,Options> *transform, const Other& other)

note: no known conversion for argument 1 from ‘Eigen::Transform<double, 3, 2>*’ to ‘Eigen::Transform<float, 3, 2>*’

3rdparty/include/eigen3/Eigen/src/Core/AssignEvaluator.h: In instantiation of ‘void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<double, 4, 4>; Src = Eigen::Matrix<float, 4, 4>; Func = Eigen::internal::assign_op<double, float>]’:

开始考虑是Eigen维度或者是版本的问题(师兄建议我升级到3.3版本),但是项目环境不想随便改动。
参考了这篇,怀疑是Matrix的数据类型的问题,就把矩阵输入输出数据类型从double改成了float
https://blog.csdn.net/unlimitedai/article/details/108533828
但是这个改动方法有点蠢,虽然暂时不报错了,但是有什么更好的方法再来改进。。
在这里插入图片描述

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值