Tại sao glGetString (GL_VERSION) có thể gây ra lỗi Seg?

Tôi đang học OpenGL trên Fedora 13 và nhận thấy rằng lệnh gọi tới glGetString đang gây ra lỗi seg. Tôi đã tìm kiếm Google, nhưng không tìm ra giải pháp nào.

Mã rất đơn giản:

#include <GL/gl.h>

int main() {
    glGetString(GL_VERSION);
    return 0;
}

Lệnh biên dịch:

g++ -lGL main.cpp -o test.bin

Kết quả chạy:

$ ./test.bin 
Segmentation fault (core dumped)

Thông tin OpenGL:

$ glxinfo | grep OpenGL
OpenGL vendor string: Tungsten Graphics, Inc
OpenGL renderer string: Mesa DRI Intel(R) IGDNG_M GEM 20100328 2010Q1 
OpenGL version string: 2.1 Mesa 7.8.1
OpenGL shading language version string: 1.20
OpenGL extensions:

Mọi ý tưởng hoặc tài liệu tham khảo đều được đánh giá cao.

Giải pháp:

#include <iostream>
#include <GL/freeglut.h>

int main(int argc, char **argv) {
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGBA);
    glutCreateWindow("test");
    glutFullScreen();
    std::cout << glGetString(GL_VERSION) << std::endl;
    return 0;
}
10
задан Cryo 9 June 2011 в 06:39
поделиться