pcl编译报错:
../lib/libPlanarSLAM.so:对‘pcl::search::Search<pcl::PointNormal>::getName[abi:cxx11]() const’未定义的引用
../lib/libPlanarSLAM.so:对‘pcl::search::Search<pcl::PointXYZRGB>::getName[abi:cxx11]() const’未定义的引用
../lib/libPlanarSLAM.so:对‘pcl::search::Search<pcl::PointXYZ>::getName[abi:cxx11]() const’未定义的引用
collect2: error: ld returned 1 exit status
CMakeFiles/Planar_SLAM.dir/build.make:397: recipe for target '../Examples/RGB-D/Planar_SLAM' failed
make[2]: *** [../Examples/RGB-D/Planar_SLAM] Error 1
CMakeFiles/Makefile2:123: recipe for target 'CMakeFiles/Planar_SLAM.dir/all' failed
make[1]: *** [CMakeFiles/Planar_SLAM.dir/all] Error 2
Makefile:102: recipe for target 'all' failed
make: *** [all] Error 2
原因是:pcl版本问题导致,本机安装的是pcl1.8,不想重新安装高版本的pcl,
在头文件中添加代码:
#include <pcl/search/impl/search.hpp>
#ifndef PCL_NO_PRECOMPILE
#include <pcl/impl/instantiate.hpp>
#include <pcl/point_types.h>
PCL_INSTANTIATE(Search, PCL_POINT_TYPES)
#endif // PCL_NO_PRECOMPILE
编译成功,亲测有效。