我试图使用GLUT创建一个窗口来使用OpenGL,但它给了我一些我不理解的错误

时间:2013-05-26 06:37:37

标签: c++ opengl window glut

我刚开始使用Graphics Library Utility Toolkit和Open Graphics Library(GLUT + OpenGL)。

我想创建一个窗口,我使用各种教程尝试了这个代码,但它没有用。

#include <OpenGL/OpenGL.h>
#include <GLUT/GLUT.h>
void display(void) {
    glClearColor(0.0, 0.0, 0.0, 1.0);
    glClear(GL_COLOR_BUFFER_BIT);
    glLoadIdentity();
    gluLookAt (0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
    glFlush();
}   

int main (int argc, char **argv[]) {
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE);
    glutInitWindowSize(400, 400);
    glutInitWindowPosition(100, 100);
    glutCreateWindow("My First GLUT/OpenGL Window");
    glutDisplayFunc(display);
    glutMainLoop();
    return 0;
}

它给了我错误:

  

无法将“char***”转换为“char**”以将参数“2”转换为“void glutInit(int*, char**)

它在第13行给了我错误。

有人可以给我一些相关信息吗?谢谢!

1 个答案:

答案 0 :(得分:3)

错误消息告诉您,您正在将指向指针的指针传递给char作为glutInit的第二个参数。这不是该函数所期望的,它需要一个指向指针的指针。

问题来自您main的签名。标准的双参数main函数接受一个int和一个指向指针的指针。

int main(int argc, char **argv)

也可写:

int main(int argc, char *argv[])

(两种形式相同。)

您正在添加一个间接级别。