C++ 失败请求的X错误:错误匹配

C++ 失败请求的X错误:错误匹配,c++,linux,opengl,nvidia,glut,C++,Linux,Opengl,Nvidia,Glut,我正在尝试执行一些“hello world”opengl代码: #include <GL/freeglut.h> void displayCall() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glEnable(GL_DEPTH_TEST); ... Some more code here glutSwapBuffers(); } int main(int argc, char *

我正在尝试执行一些“hello world”opengl代码:

#include <GL/freeglut.h>

void displayCall() {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glEnable(GL_DEPTH_TEST);
    ... Some more code here
    glutSwapBuffers();
} 

int main(int argc, char *argv[]) {
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutInitWindowSize(500, 500);
    glutInitWindowPosition(300, 200);
    glutInitContextVersion(4, 2);
    glutInitContextFlags(GLUT_FORWARD_COMPATIBLE);
    glutCreateWindow("Hello World!");
    glutDisplayFunc(displayCall);
    glutMainLoop();
    return 0;
}
以下是堆栈跟踪:

fghCreateNewContext() at freeglut_window.c:737 0x7ffff7bbaa81   
fgOpenWindow() at freeglut_window.c:878 0x7ffff7bbb2fb  
fgCreateWindow() at freeglut_structure.c:106 0x7ffff7bb9d86 
glutCreateWindow() at freeglut_window.c:1,183 0x7ffff7bbb4f2    
main() at AlphaTest.cpp:51 0x4007df 
以下是程序崩溃后的最后一段代码:

createContextAttribs = 
  (CreateContextAttribsProc) fghGetProcAddress("glXCreateContextAttribsARB" );
if ( createContextAttribs == NULL ) {
    fgError( "glXCreateContextAttribsARB not found" );
}
context = createContextAttribs( dpy, config, share_list, direct, attributes );
已成功获取“glXCreateContextAttribsARB”地址,但程序在调用时崩溃

如果我在“glutInitContextVersion()”中指定OpenGL版本低于4.2,则程序运行时不会出错

这是我的glxinfo的欧宝版本:

OpenGL version string: 4.2.0 NVIDIA 285.05.09

如果有任何进一步的想法,我将不胜感激。

转到堆栈溢出;这与游戏开发无关。希望你能找到答案!移动到堆栈溢出;这与游戏开发无关。希望你能找到答案!
OpenGL version string: 4.2.0 NVIDIA 285.05.09