ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

My guess is that you're not linking against pcl_visualization. Here's a minimal program containing your code, along with a cmake recipe that compiles and links successfully for me under Kinetic on Ubuntu 18.04:

foo.cc:

#include <pcl/point_cloud.h>
#include <pcl/point_types.h>
#include <pcl/visualization/pcl_visualizer.h>

int main(void)
{
  pcl::PointCloud<pcl::PointXYZI>::Ptr to_show(new pcl::PointCloud<pcl::PointXYZI>);
  boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer(new pcl::visualization::PCLVisualizer("viewer"));
  viewer->setBackgroundColor (0, 0, 0);
  viewer->addCoordinateSystem (1.0f);
  pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZI> h1(to_show, 255, 0, 0);
  viewer->addPointCloud(to_show, h1, "h1");
  while(!viewer->wasStopped()){
    viewer->spinOnce(100);
  }
}

CMakeLists.txt:

cmake_minimum_required(VERSION 2.8.3)
project(foo)
find_package(catkin REQUIRED COMPONENTS
  pcl_ros
)
include_directories(
  ${catkin_INCLUDE_DIRS}
)
add_executable(foo foo.cc)
target_link_libraries(foo
  ${catkin_LIBRARIES}
  pcl_visualization
)