【发布时间】:2015-05-15 20:18:55
【问题描述】:
这是我目前使用的环境:Eclipse-Luna,Linux Mint 上的 C++11 -Rebecca。
当我尝试将现代 OpenGL 与 VAO 或 VBO 一起使用时,我会收到编译器错误,导致无法解析方法。
例如:
GLuint VaoID; //GLuint is working
glGenVertexArrays(1, &VaoID);
或:
GLuint VboID;
glGenBuffers(1, &VboID);
glBindBuffer(GL_ARRAY_BUFFER, VboID);
glBufferData(GL_ARRAY_BUFFER, vbo_size, data, usage);
我检查了 GL/gl.h、GL/gext.h,发现里面只有 OpenGL 1.x 方法。
所以我检查了我的 OpenGL 版本 glxinfo|grep "OpenGL"。这似乎很好:
glxinfo|grep "OpenGL"
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Haswell Mobile
OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.1.3
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 10.1.3
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
再次尝试安装或更新软件包只会表明一切都是最新的。
sudo apt-get install freeglut3 freeglut3-dev libglew1.5 libglew1.5-dev libglu1-mesa libglu1-mesa-dev libgl1-mesa-glx libgl1-mesa-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'libglew1.5-dev' for regex 'libglew1.5'
Note, selecting 'libglew-dev' instead of 'libglew1.5-dev'
Note, selecting 'libglew-dev' instead of 'libglew1.5-dev'
freeglut3 is already the newest version.
freeglut3-dev is already the newest version.
libglew-dev is already the newest version.
libglu1-mesa is already the newest version.
libglu1-mesa-dev is already the newest version.
libgl1-mesa-dev is already the newest version.
libgl1-mesa-glx is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 150 not upgraded.
那么有没有办法在不手动弄乱包含目录的情况下解决这个问题?
如果没有我如何获得适合我的 OpenGL 版本的最新标头?
【问题讨论】:
-
在包含
#include <GL/glew.h>并使用-lGLEW编译后是否仍然出现此错误?刚刚在这里尝试过,GLEW 有提到的方法。编辑:此外,请检查这些answers 是否对您有帮助。 -
我会试试的。但这可能需要一段时间。谢谢。