LiO-SAM编译过程中PCL版本的适用问题

LiO-SAM编译过程中PCL版本的适用问题@TOC

问题

我最开始的PCL版本是目前最新的pcl-1.11,这个版本编译LIO-SAM时,使用pcl_conversions.h的函数(用来转换ros pointCloud2 )会出现带有boost::shared_ptr的函数未定义的问题,如下:
undefined reference to pcl::PCLBasepcl::PointXYZI::setIndices(boost::shared_ptr<std::vector<int, std::allocator > const> const&)
查看github上pcl-1.11的release notes发现以下内容:
Starting with PCL 1.11, PCL uses std::shared_ptr and std::weak_ptr instead of the boost smart pointers. The change leverages type aliases included with the 1.10.0 release. PCL 1.11 also introduces pcl::index_t which should be used for the size of point types instead of int, std::size_t, etc. EOL for deprecated features is also explicitly mentioned in the deprecation compile time warnings
pcl_conversions是1.7版本的函数,在pcl-1.11中已经不支持,有位老哥介绍了他的解决方案,但是我试过了,首先他说的“从perception_cpl.git直接拉下2.1.0和1.71两个版本”就没法实现,因为那里没有2.1.0和1.7.1的版本branch。

解决方案

卸载 pcl-1.11

这里介绍一个简单的卸载cmake源码安装的包的卸载方法:首先找到install_manifest.txt文件的文件夹(一般就在源码文件夹里),打开命令行,输入:

cat install_manifest.txt | sudo xargs rm

安装pcl-1.7

我选择的是ROS模块的pcl-1.7(听说pcl-1.8也可以,读者不妨一试,手动狗头),安装也很简单, 可以参考这个博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值