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;
}