我现在正在与一些Laserscans合作,并希望在C ++中对PointClouds进行缩减采样。 我在构建过程中遇到了一个奇怪的问题,我想在库链接时我尝试编译代码。这里最小的代码剪切了问题似乎来自:
pcl::PointCloud<pcl::PointXYZ>::Ptr point_cloud_last (new pcl::PointCloud<pcl::PointXYZ>);
pcl::PointCloud<pcl::PointXYZ>::Ptr downsampled (new pcl::PointCloud<pcl::PointXYZ>);
point_cloud_last = _last_pt_cl.makeShared();
pcl::VoxelGrid<pcl::PointXYZ> sor;
sor.setInputCloud (point_cloud_last);
sor.setLeafSize (0.05f, 0.05f, 0.05f);
sor.filter (*downsampled);
当我尝试编译时,我得到以下错误:
undefined reference to `pcl::VoxelGrid<pcl::PointXYZ>::applyFilter(pcl::PointCloud<pcl::PointXYZ>&)'
我发现,可能是因为CMakeList中缺少组件。这里我的CMakeList剪断了:
find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
std_msgs
cv_bridge
tf
message_generation
)
find_package(OpenCV REQUIRED)
find_package(PCL 1.7 REQUIRED
如果有人知道,有什么不对,请告诉我。 我使用Eclipse,PCL 1.7,ros indigo。
答案 0 :(得分:1)
似乎有点晚了,但我也遇到了这个问题。 composer create-project symfony/api-skeleton my-project
target_link_libraries
-lpcl_filters
在我的案例中有所帮助。
答案 1 :(得分:0)
对我有用的东西:
target_link_libraries(my_project ${catkin_LIBRARIES} ${PCL_LIBRARIES})