我在跑《点云库PCL从入门到精通》这本书第五章可视化,自定义交互(P127)的代码时,调试鼠标事件函数:
void mouseEventOccurred(const pcl::visualization::MouseEvent &event,
void* viewer_void)
{
boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer = *static_cast<boost::shared_ptr<pcl::visualization::PCLVisualizer> *> (viewer_void);
if (event.getButton() == pcl::visualization::MouseEvent::LeftButton &&
event.getType() == pcl::visualization::MouseEvent::MouseButtonRelease)
{
std::cout << "Left mouse button released at position (" << event.getX() << ", " << event.getY() << ")" << std::endl;
char str[512];
sprintf(str, "text#%03d", text_id++);
viewer->addText("clicked here", event.getX(), event.getY(), str);//引发错误
}
}
如果去掉
viewer->addText("clicked here", event.getX(), event.getY(), str)
就可以正常运行,否则会在pcl显示界面单击鼠标后会显示以下错误:

查了很久没有查到如何解决,麻烦各位帮忙看看,谢谢!