pcl :: VoxelGrid <pointxyz>不能使用pcl :: PointCloud <pointxyz>

时间:2018-01-17 02:23:17

标签: c++ point-cloud-library

我现在正在与一些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。

2 个答案:

答案 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})