最近使用Ubuntu20.04+ROS1+PCL+Livox_ROS_driver开发激光雷达测距定位系统,参照11. PCL的搭建-CSDN博客装了PCL后ROS的package编译link是总是报“undefined reference to `pcl::visualization::CloudViewer::showCloud(boost::shared_ptr<pcl::PointCloud<pcl::PointXYZ> const> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)”错误。
试了很多博主该cmakelists的方法,都不行。最后发现还是ROS内自带的PCL版本和单独安装的PCL版本匹配问题。
安装完ROS后在文件管理里面搜索libpcl-common,看搜索结果中.so文件后面的版本号,可以确定ROS自带的PCL版本,按这个版本在Tags · PointCloudLibrary/pcl · GitHub上面下载对应版本的完整的PCL库,按照11. PCL的搭建-CSDN博客这里的流程进行安装就可以解决问题。
最终安装了Ubuntu20.04、ROS1(自带PCL1.10.0库)、VTK7.1.1和PCL1.10.0。后面有时间了出个详细过程。