使用SiftGPU遇到问题:freeglut ERROR: Function <glutDestroyWindow> called without

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-29 15:24   16   0

1.问题:

最近在配置SiftGPU(参见高翔博士的博客-SLAM拾萃(3):siftGPU)时遇到一个关于freeglut的问题:freeglut ERROR: Function <glutDestroyWindow> called without first calling 'glutInit'.

问题截图

2.分析:

我看了下SiftGPU的源代码,在src/SiftGPU/LiteWindow.h中有调用glutDestroyWindow函数,但是在调用glutDestroyWindow之前已经调用了glutinit函数,和上面的错误描述有矛盾;

我暂时也不明白为什么会报这种错误。。。

3.解决办法:

在google上找了很久,找到一个解决办法:

在调用glutDestroyWindow之前再调用一次glutinit,只不过glutinit的两个参数设为空值。

//修改前
virtual ~LiteWindow()    {  if(glut_id > 0)  glutDestroyWindow(glut_id); }
//修改后
virtual ~LiteWindow()   
    {  
        if(glut_id > 0) 
        {
            //添加以下三行,调用glutinit(),解决问题:freeglut ERROR: Function <glutDestroyWindow> called without first calling 'glutInit'.
            int argc = 0;
            char** argv;
            glutInit(&argc, argv); 
            glutDestroyWindow(glut_id);
        } 
    }
然后,问题就解决啦~

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP