C++ 在Ubuntu 10.10下运行OpenGL项目时出错

C++ 在Ubuntu 10.10下运行OpenGL项目时出错,c++,opengl,glut,ubuntu-10.10,C++,Opengl,Glut,Ubuntu 10.10,我有一个OpenGL项目,用于在Windows中查找凸壳 现在我使用Ubuntu 10.10,我尝试将代码(它是C++代码)移植并运行。 我看到,应该这样编译: g++ convex.cpp -lm -lglut -lGLU -o convex_hull_project 它编译文件,但当我运行文件/convertic\u hull\u project时,它会启动程序,显示标题,但什么都没有-它只停靠底部任务行,当我单击它时,什么都不显示该程序没有窗口。 有什么想法吗? 下面是使用OpenGL的

我有一个OpenGL项目,用于在Windows中查找凸壳

现在我使用Ubuntu 10.10,我尝试将代码(它是C++代码)移植并运行。 我看到,应该这样编译:

g++ convex.cpp -lm -lglut -lGLU -o convex_hull_project
它编译文件,但当我运行文件
/convertic\u hull\u project
时,它会启动程序,显示标题,但什么都没有-它只停靠底部任务行,当我单击它时,什么都不显示该程序没有窗口。 有什么想法吗? 下面是使用OpenGL的代码:

int main(int argc, char* argv[]) {
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGBA | GLUT_SINGLE | GLUT_DEPTH); // color, buffer
    glutInitWindowPosition(100,100);
    glutInitWindowSize(window_size_width,window_size_height);
    glutCreateWindow("Convex hull");
    glutDisplayFunc(renderScene);
    glutMouseFunc(mouse);
    glutMainLoop();
    return 0;
}


void renderScene(void) {

    // clear framebuffer
    glClearColor(0.f,0.f,0.f,0.f);
    glClear(GL_COLOR_BUFFER_BIT);

    // set-up matrix
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0,window_size_width,window_size_height,0,-1,1);

    glViewport(0,0,window_size_width,window_size_height);
        //drawing ... 
    }
其中包括:

#include<GL/glut.h>
#include<GL/glu.h>
#include<stdio.h>
#include<vector>
#include<algorithm>
#include<math.h>
#包括
#包括
#包括
#包括
#包括
#包括

在设置windows属性之前,必须调用
glutCreateWindow
。您的代码,已修复(我已将宽度和高度常量替换为300,只是为了让它编译并注释掉鼠标处理程序注册):

#包括
#包括
#包括
#包括
#包括
#包括
void renderScene(void){
//清除帧缓冲区
glClearColor(0.f,0.f,0.f,0.f);
glClear(GLU颜色缓冲位);
//设置矩阵
glMatrixMode(GL_投影);
glLoadIdentity();
格洛托(0,300,300,0,-1,1);
政府统计处(0,0300,300),;
//绘图。。。
}
int main(int argc,char*argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGBA | GLUT_SINGLE | GLUT_DEPTH);//颜色,缓冲区
窗口(“凸面外壳”);
位置(100100);
glutInitWindowSize(300300);
glutDisplayFunc(渲染场景);
//glutMouseFunc(小鼠);
glutMainLoop();
}

由于您获得了可执行文件,您的程序被编译和链接,因此无法正常工作-标题误导了GLUTCreateWindow(“你好,GLUT Window!”);位置(100100);glutInitWindowSize(300300);窗口(“凸面外壳”);我正在创建窗口:)对,但在设置其属性之前必须创建它。。。因此,在那些init调用之后,我甚至没有注意到它:-)好的,它创建了窗口,但没有显示它。我单击窗口应该位于的位置,并在控制台中获得输出。很奇怪好吧,一切都很好。当我从文件夹运行它时,它会正确显示。谢谢你的帮助,你为我指明了寻找的方向;)@Vlad Lazarenko即使从文件夹中打开它,我也有同样的错误
#include <cstdio>
#include <vector>
#include <algorithm>
#include <cmath>

#include <GL/glut.h>
#include <GL/glu.h>

void renderScene(void) {

    // clear framebuffer
    glClearColor (0.f,0.f,0.f,0.f);
    glClear (GL_COLOR_BUFFER_BIT);

    // set-up matrix
    glMatrixMode (GL_PROJECTION);
    glLoadIdentity ();
    glOrtho (0, 300, 300, 0,-1,1);

    glViewport (0,0,300, 300);
    //drawing ... 
}

int main(int argc, char* argv[])
{
    glutInit (&argc, argv);
    glutInitDisplayMode (GLUT_RGBA | GLUT_SINGLE | GLUT_DEPTH); // color, buffer
    glutCreateWindow ("Convex hull");
    glutInitWindowPosition (100, 100);
    glutInitWindowSize (300, 300);
    glutDisplayFunc (renderScene);
    //glutMouseFunc (mouse);
    glutMainLoop ();
}