Pangolin绘制曲线时运行可执行程序电脑会卡住

使用Pangolin绘制曲线,为什么执行make生成的可执行程序电脑会卡住,也不显示可视化的曲线,弹出的窗口一直卡住,同时终端显示:已放弃 (核心已转储)。版本为:ubuntu22.04,pangolin-0.6(0.5-0.8都试了)

#include <iostream>
#include <pangolin/pangolin.h>

int main(/*int argc, char* argv[]*/)
{
  // Create OpenGL window in single line
  pangolin::CreateWindowAndBind("Main",640,480);

  // Data logger object
  pangolin::DataLog log;

  // Optionally add named labels
  std::vector<std::string> labels;
  labels.push_back(std::string("sin(t)"));
  labels.push_back(std::string("cos(t)"));
  labels.push_back(std::string("sin(t)+cos(t)"));
  log.SetLabels(labels);

  const float tinc = 0.01f;

  // OpenGL 'view' of data. We might have many views of the same data.
  pangolin::Plotter plotter(&log,0.0f,4.0f*(float)M_PI/tinc,-4.0f,4.0f,(float)M_PI/(4.0f*tinc),0.5f);
  plotter.SetBounds(0.0, 1.0, 0.0, 1.0);
  plotter.Track("$i");//坐标轴自动滚动

  // Add some sample annotations to the plot(为区域着色)
  plotter.AddMarker(pangolin::Marker::Vertical,   50*M_PI, pangolin::Marker::LessThan, pangolin::Colour::Blue().WithAlpha(0.2f) );
  plotter.AddMarker(pangolin::Marker::Horizontal,   3, pangolin::Marker::GreaterThan, pangolin::Colour::Red().WithAlpha(0.2f) );
  plotter.AddMarker(pangolin::Marker::Horizontal,    3, pangolin::Marker::Equal, pangolin::Colour::Green().WithAlpha(0.2f) );

  pangolin::DisplayBase().AddDisplay(plotter);

  float t = 0;

  // Default hooks for exiting (Esc) and fullscreen (tab).
  while( !pangolin::ShouldQuit() )
  {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    log.Log(sin(t),cos(t),sin(t)+cos(t));
    t += tinc;

    // Render graph, Swap frames and Process Events
    pangolin::FinishFrame();
  }

  return 0;
}

根据您提供的信息,无法确定造成程序卡死的原因。以下是一些可能导致程序卡死的原因和相应的解决方案,供您参考:

Pangolin库版本不兼容问题。您提到已经尝试了多个版本的Pangolin库,但仍然无法解决问题。可能的原因是您的程序和Pangolin库之间存在兼容性问题。建议您检查程序和Pangolin库的版本是否匹配,并尝试使用其他版本的库。

OpenGL环境配置问题。Pangolin库需要OpenGL支持,如果您的OpenGL环境配置不正确,可能会导致程序无法正常运行。建议您检查OpenGL环境配置是否正确,并确保OpenGL库已经正确安装。

程序中的死循环问题。您的程序中有一个while循环,如果循环条件不满足,程序可能会陷入死循环,导致卡死。建议您检查程序中的while循环条件是否正确,并确保程序可以正常退出循环。

程序中的其他问题。您的程序中可能存在其他问题,例如内存泄漏、变量未初始化等,这些问题可能导致程序无法正常运行。建议您使用调试工具进行调试,查找问题并解决。

针对上述可能导致程序卡死的原因,可以尝试以下解决方案:

确认程序和Pangolin库的版本是否匹配,尝试使用其他版本的库。

检查OpenGL环境配置是否正确,确保OpenGL库已经正确安装。

检查程序中的while循环条件是否正确,并确保程序可以正常退出循环。

使用调试工具进行调试,查找问题并解决。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这篇博客: ubuntu18.04安装pangolin库,图文详解中的 1. 终端输入命令,安装所需依赖 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    sudo apt install libglew-dev cmake libboost-dev libboost-thread-dev libboost-filesystem-dev libeigen3-dev -y 
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^